11 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 1 3
12 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
18 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++config.h" 1 3
19 # 186 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++config.h" 3
22 typedef long unsigned int size_t;
23 typedef long int ptrdiff_t;
26 typedef decltype(
nullptr) nullptr_t;
29 # 430 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++config.h" 3
30 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/os_defines.h" 1 3
31 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/os_defines.h" 3
32 # 1 "/usr/include/features.h" 1 3 4
33 # 356 "/usr/include/features.h" 3 4
34 # 1 "/usr/include/stdc-predef.h" 1 3 4
35 # 357 "/usr/include/features.h" 2 3 4
36 # 378 "/usr/include/features.h" 3 4
37 # 1 "/usr/include/sys/cdefs.h" 1 3 4
38 # 385 "/usr/include/sys/cdefs.h" 3 4
39 # 1 "/usr/include/bits/wordsize.h" 1 3 4
40 # 386 "/usr/include/sys/cdefs.h" 2 3 4
41 # 379 "/usr/include/features.h" 2 3 4
42 # 402 "/usr/include/features.h" 3 4
43 # 1 "/usr/include/gnu/stubs.h" 1 3 4
44 # 10 "/usr/include/gnu/stubs.h" 3 4
45 # 1 "/usr/include/gnu/stubs-64.h" 1 3 4
46 # 11 "/usr/include/gnu/stubs.h" 2 3 4
47 # 403 "/usr/include/features.h" 2 3 4
48 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/os_defines.h" 2 3
49 # 431 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++config.h" 2 3
52 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/cpu_defines.h" 1 3
53 # 434 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++config.h" 2 3
54 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 2 3
55 # 48 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
56 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdint" 1 3
57 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdint" 3
66 # 1 "/usr/bin/../lib/clang/3.4.2/include/stdint.h" 1 3
67 # 64 "/usr/bin/../lib/clang/3.4.2/include/stdint.h" 3
68 # 1 "/usr/include/stdint.h" 1 3 4
69 # 26 "/usr/include/stdint.h" 3 4
70 # 1 "/usr/include/bits/wchar.h" 1 3 4
71 # 27 "/usr/include/stdint.h" 2 3 4
72 # 1 "/usr/include/bits/wordsize.h" 1 3 4
73 # 28 "/usr/include/stdint.h" 2 3 4
82 typedef signed char int8_t;
83 typedef short int int16_t;
86 typedef long int int64_t;
94 typedef unsigned char uint8_t;
95 typedef unsigned short int uint16_t;
97 typedef unsigned int uint32_t;
101 typedef unsigned long int uint64_t;
102 # 65 "/usr/include/stdint.h" 3 4
103 typedef signed char int_least8_t;
104 typedef short int int_least16_t;
105 typedef int int_least32_t;
107 typedef long int int_least64_t;
114 typedef unsigned char uint_least8_t;
115 typedef unsigned short int uint_least16_t;
116 typedef unsigned int uint_least32_t;
118 typedef unsigned long int uint_least64_t;
119 # 90 "/usr/include/stdint.h" 3 4
120 typedef signed char int_fast8_t;
122 typedef long int int_fast16_t;
123 typedef long int int_fast32_t;
124 typedef long int int_fast64_t;
125 # 103 "/usr/include/stdint.h" 3 4
126 typedef unsigned char uint_fast8_t;
128 typedef unsigned long int uint_fast16_t;
129 typedef unsigned long int uint_fast32_t;
130 typedef unsigned long int uint_fast64_t;
131 # 119 "/usr/include/stdint.h" 3 4
132 typedef long int intptr_t;
135 typedef unsigned long int uintptr_t;
136 # 134 "/usr/include/stdint.h" 3 4
137 typedef long int intmax_t;
138 typedef unsigned long int uintmax_t;
139 # 65 "/usr/bin/../lib/clang/3.4.2/include/stdint.h" 2 3
140 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdint" 2 3
153 using ::int_fast16_t;
154 using ::int_fast32_t;
155 using ::int_fast64_t;
157 using ::int_least8_t;
158 using ::int_least16_t;
159 using ::int_least32_t;
160 using ::int_least64_t;
170 using ::uint_fast8_t;
171 using ::uint_fast16_t;
172 using ::uint_fast32_t;
173 using ::uint_fast64_t;
175 using ::uint_least8_t;
176 using ::uint_least16_t;
177 using ::uint_least32_t;
178 using ::uint_least64_t;
183 # 49 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 2 3
187 namespace std __attribute__ ((__visibility__ ("default")))
189 # 68 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
190 template<
typename _Tp, _Tp __v>
191 struct integral_constant
193 static constexpr _Tp value = __v;
194 typedef _Tp value_type;
195 typedef integral_constant<_Tp, __v> type;
196 constexpr
operator value_type()
const {
return value; }
202 template<
typename _Tp, _Tp __v>
203 constexpr _Tp integral_constant<_Tp, __v>::value;
206 typedef integral_constant<bool, true> true_type;
209 typedef integral_constant<bool, false> false_type;
213 template<
bool,
typename,
typename>
216 template<
typename...>
224 template<
typename _B1>
229 template<
typename _B1,
typename _B2>
230 struct __or_<_B1, _B2>
231 :
public conditional<_B1::value, _B1, _B2>::type
234 template<
typename _B1,
typename _B2,
typename _B3,
typename... _Bn>
235 struct __or_<_B1, _B2, _B3, _Bn...>
236 :
public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type
239 template<
typename...>
247 template<
typename _B1>
252 template<
typename _B1,
typename _B2>
253 struct __and_<_B1, _B2>
254 :
public conditional<_B1::value, _B2, _B1>::type
257 template<
typename _B1,
typename _B2,
typename _B3,
typename... _Bn>
258 struct __and_<_B1, _B2, _B3, _Bn...>
259 :
public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type
262 template<
typename _Pp>
264 :
public integral_constant<bool, !_Pp::value>
272 template<
typename _Tp>
273 struct __success_type
274 {
typedef _Tp type; };
276 struct __failure_type
285 struct __is_void_helper
286 :
public false_type { };
289 struct __is_void_helper<void>
290 :
public true_type { };
293 template<
typename _Tp>
295 :
public __is_void_helper<typename remove_cv<_Tp>::type>::type
299 struct __is_integral_helper
300 :
public false_type { };
303 struct __is_integral_helper<bool>
304 :
public true_type { };
307 struct __is_integral_helper<char>
308 :
public true_type { };
311 struct __is_integral_helper<signed char>
312 :
public true_type { };
315 struct __is_integral_helper<unsigned char>
316 :
public true_type { };
320 struct __is_integral_helper<wchar_t>
321 :
public true_type { };
325 struct __is_integral_helper<char16_t>
326 :
public true_type { };
329 struct __is_integral_helper<char32_t>
330 :
public true_type { };
333 struct __is_integral_helper<short>
334 :
public true_type { };
337 struct __is_integral_helper<unsigned short>
338 :
public true_type { };
341 struct __is_integral_helper<int>
342 :
public true_type { };
345 struct __is_integral_helper<unsigned int>
346 :
public true_type { };
349 struct __is_integral_helper<long>
350 :
public true_type { };
353 struct __is_integral_helper<unsigned long>
354 :
public true_type { };
357 struct __is_integral_helper<long long>
358 :
public true_type { };
361 struct __is_integral_helper<unsigned long long>
362 :
public true_type { };
363 # 253 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
364 template<
typename _Tp>
366 :
public __is_integral_helper<typename remove_cv<_Tp>::type>::type
370 struct __is_floating_point_helper
371 :
public false_type { };
374 struct __is_floating_point_helper<float>
375 :
public true_type { };
378 struct __is_floating_point_helper<double>
379 :
public true_type { };
382 struct __is_floating_point_helper<long double>
383 :
public true_type { };
384 # 281 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
385 template<
typename _Tp>
386 struct is_floating_point
387 :
public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
393 :
public false_type { };
395 template<
typename _Tp, std::
size_t _Size>
396 struct is_array<_Tp[_Size]>
397 :
public true_type { };
399 template<
typename _Tp>
400 struct is_array<_Tp[]>
401 :
public true_type { };
404 struct __is_pointer_helper
405 :
public false_type { };
407 template<
typename _Tp>
408 struct __is_pointer_helper<_Tp*>
409 :
public true_type { };
412 template<
typename _Tp>
414 :
public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
419 struct is_lvalue_reference
420 :
public false_type { };
422 template<
typename _Tp>
423 struct is_lvalue_reference<_Tp&>
424 :
public true_type { };
428 struct is_rvalue_reference
429 :
public false_type { };
431 template<
typename _Tp>
432 struct is_rvalue_reference<_Tp&&>
433 :
public true_type { };
439 struct __is_member_object_pointer_helper
440 :
public false_type { };
442 template<
typename _Tp,
typename _Cp>
443 struct __is_member_object_pointer_helper<_Tp _Cp::*>
444 :
public integral_constant<bool, !is_function<_Tp>::value> { };
447 template<
typename _Tp>
448 struct is_member_object_pointer
449 :
public __is_member_object_pointer_helper<
450 typename remove_cv<_Tp>::type>::type
454 struct __is_member_function_pointer_helper
455 :
public false_type { };
457 template<
typename _Tp,
typename _Cp>
458 struct __is_member_function_pointer_helper<_Tp _Cp::*>
459 :
public integral_constant<bool, is_function<_Tp>::value> { };
462 template<
typename _Tp>
463 struct is_member_function_pointer
464 :
public __is_member_function_pointer_helper<
465 typename remove_cv<_Tp>::type>::type
469 template<
typename _Tp>
471 :
public integral_constant<bool, __is_enum(_Tp)>
475 template<
typename _Tp>
477 :
public integral_constant<bool, __is_union(_Tp)>
481 template<
typename _Tp>
483 :
public integral_constant<bool, __is_class(_Tp)>
489 :
public false_type { };
491 template<
typename _Res,
typename... _ArgTypes>
492 struct is_function<_Res(_ArgTypes...)>
493 :
public true_type { };
495 template<
typename _Res,
typename... _ArgTypes>
496 struct is_function<_Res(_ArgTypes...) &>
497 :
public true_type { };
499 template<
typename _Res,
typename... _ArgTypes>
500 struct is_function<_Res(_ArgTypes...) &&>
501 :
public true_type { };
503 template<
typename _Res,
typename... _ArgTypes>
504 struct is_function<_Res(_ArgTypes......)>
505 :
public true_type { };
507 template<
typename _Res,
typename... _ArgTypes>
508 struct is_function<_Res(_ArgTypes......) &>
509 :
public true_type { };
511 template<
typename _Res,
typename... _ArgTypes>
512 struct is_function<_Res(_ArgTypes......) &&>
513 :
public true_type { };
515 template<
typename _Res,
typename... _ArgTypes>
516 struct is_function<_Res(_ArgTypes...) const>
517 :
public true_type { };
519 template<
typename _Res,
typename... _ArgTypes>
520 struct is_function<_Res(_ArgTypes...) const &>
521 :
public true_type { };
523 template<
typename _Res,
typename... _ArgTypes>
524 struct is_function<_Res(_ArgTypes...) const &&>
525 :
public true_type { };
527 template<
typename _Res,
typename... _ArgTypes>
528 struct is_function<_Res(_ArgTypes......) const>
529 :
public true_type { };
531 template<
typename _Res,
typename... _ArgTypes>
532 struct is_function<_Res(_ArgTypes......) const &>
533 :
public true_type { };
535 template<
typename _Res,
typename... _ArgTypes>
536 struct is_function<_Res(_ArgTypes......) const &&>
537 :
public true_type { };
539 template<
typename _Res,
typename... _ArgTypes>
540 struct is_function<_Res(_ArgTypes...) volatile>
541 :
public true_type { };
543 template<
typename _Res,
typename... _ArgTypes>
544 struct is_function<_Res(_ArgTypes...) volatile &>
545 :
public true_type { };
547 template<
typename _Res,
typename... _ArgTypes>
548 struct is_function<_Res(_ArgTypes...) volatile &&>
549 :
public true_type { };
551 template<
typename _Res,
typename... _ArgTypes>
552 struct is_function<_Res(_ArgTypes......) volatile>
553 :
public true_type { };
555 template<
typename _Res,
typename... _ArgTypes>
556 struct is_function<_Res(_ArgTypes......) volatile &>
557 :
public true_type { };
559 template<
typename _Res,
typename... _ArgTypes>
560 struct is_function<_Res(_ArgTypes......) volatile &&>
561 :
public true_type { };
563 template<
typename _Res,
typename... _ArgTypes>
564 struct is_function<_Res(_ArgTypes...) const volatile>
565 :
public true_type { };
567 template<
typename _Res,
typename... _ArgTypes>
568 struct is_function<_Res(_ArgTypes...) const volatile &>
569 :
public true_type { };
571 template<
typename _Res,
typename... _ArgTypes>
572 struct is_function<_Res(_ArgTypes...) const volatile &&>
573 :
public true_type { };
575 template<
typename _Res,
typename... _ArgTypes>
576 struct is_function<_Res(_ArgTypes......) const volatile>
577 :
public true_type { };
579 template<
typename _Res,
typename... _ArgTypes>
580 struct is_function<_Res(_ArgTypes......) const volatile &>
581 :
public true_type { };
583 template<
typename _Res,
typename... _ArgTypes>
584 struct is_function<_Res(_ArgTypes......) const volatile &&>
585 :
public true_type { };
588 struct __is_null_pointer_helper
589 :
public false_type { };
592 struct __is_null_pointer_helper<std::nullptr_t>
593 :
public true_type { };
596 template<
typename _Tp>
597 struct is_null_pointer
598 :
public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
602 template<
typename _Tp>
603 struct __is_nullptr_t
604 :
public is_null_pointer<_Tp>
610 template<
typename _Tp>
612 :
public __or_<is_lvalue_reference<_Tp>,
613 is_rvalue_reference<_Tp>>::type
617 template<
typename _Tp>
619 :
public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
623 template<
typename _Tp>
624 struct is_fundamental
625 :
public __or_<is_arithmetic<_Tp>, is_void<_Tp>,
626 is_null_pointer<_Tp>>::type
630 template<
typename _Tp>
632 :
public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
637 struct is_member_pointer;
640 template<
typename _Tp>
642 :
public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
643 is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
647 template<
typename _Tp>
649 :
public integral_constant<bool, !is_fundamental<_Tp>::value> { };
651 template<
typename _Tp>
652 struct __is_member_pointer_helper
653 :
public false_type { };
655 template<
typename _Tp,
typename _Cp>
656 struct __is_member_pointer_helper<_Tp _Cp::*>
657 :
public true_type { };
660 template<
typename _Tp>
661 struct is_member_pointer
662 :
public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
667 template<
typename _Tp>
668 struct __is_referenceable
669 :
public __or_<is_object<_Tp>, is_reference<_Tp>>::type
672 template<
typename _Res,
typename... _Args>
673 struct __is_referenceable<_Res(_Args...)>
677 template<
typename _Res,
typename... _Args>
678 struct __is_referenceable<_Res(_Args......)>
687 :
public false_type { };
689 template<
typename _Tp>
690 struct is_const<_Tp const>
691 :
public true_type { };
696 :
public false_type { };
698 template<
typename _Tp>
699 struct is_volatile<_Tp volatile>
700 :
public true_type { };
703 template<
typename _Tp>
705 :
public integral_constant<bool, __is_trivial(_Tp)>
711 template<
typename _Tp>
712 struct is_standard_layout
713 :
public integral_constant<bool, __is_standard_layout(_Tp)>
718 template<
typename _Tp>
720 :
public integral_constant<bool, __is_pod(_Tp)>
724 template<
typename _Tp>
725 struct is_literal_type
726 :
public integral_constant<bool, __is_literal_type(_Tp)>
730 template<
typename _Tp>
732 :
public integral_constant<bool, __is_empty(_Tp)>
736 template<
typename _Tp>
737 struct is_polymorphic
738 :
public integral_constant<bool, __is_polymorphic(_Tp)>
742 template<
typename _Tp>
744 :
public integral_constant<bool, __is_abstract(_Tp)>
747 template<
typename _Tp,
748 bool = is_arithmetic<_Tp>::value>
749 struct __is_signed_helper
750 :
public false_type { };
752 template<
typename _Tp>
753 struct __is_signed_helper<_Tp, true>
754 :
public integral_constant<bool, _Tp(-1) < _Tp(0)>
758 template<typename _Tp>
760 : public __is_signed_helper<_Tp>::type
764 template<typename _Tp>
766 : public __and_<is_arithmetic<_Tp>, __not_<is_signed<_Tp>>>::type
773 struct add_rvalue_reference;
779 template<typename _Tp>
780 typename add_rvalue_reference<_Tp>::type declval() noexcept;
782 template<typename, unsigned = 0>
786 struct remove_all_extents;
788 template<typename _Tp>
789 struct __is_array_known_bounds
790 : public integral_constant<bool, (extent<_Tp>::value > 0)>
793 template<
typename _Tp>
794 struct __is_array_unknown_bounds
795 :
public __and_<is_array<_Tp>, __not_<extent<_Tp>>>::type
803 struct __do_is_destructible_impl
805 template<
typename _Tp,
typename = decltype(declval<_Tp&>().~_Tp())>
806 static true_type __test(
int);
809 static false_type __test(...);
812 template<
typename _Tp>
813 struct __is_destructible_impl
814 :
public __do_is_destructible_impl
816 typedef decltype(__test<_Tp>(0)) type;
819 template<typename _Tp,
820 bool = __or_<is_void<_Tp>,
821 __is_array_unknown_bounds<_Tp>,
822 is_function<_Tp>>::value,
823 bool = __or_<is_reference<_Tp>, is_scalar<_Tp>>::value>
824 struct __is_destructible_safe;
826 template<typename _Tp>
827 struct __is_destructible_safe<_Tp, false, false>
828 : public __is_destructible_impl<typename
829 remove_all_extents<_Tp>::type>::type
832 template<
typename _Tp>
833 struct __is_destructible_safe<_Tp, true, false>
834 :
public false_type { };
836 template<
typename _Tp>
837 struct __is_destructible_safe<_Tp, false, true>
838 :
public true_type { };
841 template<
typename _Tp>
842 struct is_destructible
843 :
public __is_destructible_safe<_Tp>::type
850 struct __do_is_nt_destructible_impl
852 template<
typename _Tp>
853 static integral_constant<bool, noexcept(declval<_Tp&>().~_Tp())>
857 static false_type __test(...);
860 template<
typename _Tp>
861 struct __is_nt_destructible_impl
862 :
public __do_is_nt_destructible_impl
864 typedef decltype(__test<_Tp>(0)) type;
867 template<typename _Tp,
868 bool = __or_<is_void<_Tp>,
869 __is_array_unknown_bounds<_Tp>,
870 is_function<_Tp>>::value,
871 bool = __or_<is_reference<_Tp>, is_scalar<_Tp>>::value>
872 struct __is_nt_destructible_safe;
874 template<typename _Tp>
875 struct __is_nt_destructible_safe<_Tp, false, false>
876 : public __is_nt_destructible_impl<typename
877 remove_all_extents<_Tp>::type>::type
880 template<
typename _Tp>
881 struct __is_nt_destructible_safe<_Tp, true, false>
882 :
public false_type { };
884 template<
typename _Tp>
885 struct __is_nt_destructible_safe<_Tp, false, true>
886 :
public true_type { };
889 template<
typename _Tp>
890 struct is_nothrow_destructible
891 :
public __is_nt_destructible_safe<_Tp>::type
894 struct __do_is_default_constructible_impl
896 template<
typename _Tp,
typename = decltype(_Tp())>
897 static true_type __test(
int);
900 static false_type __test(...);
903 template<
typename _Tp>
904 struct __is_default_constructible_impl
905 :
public __do_is_default_constructible_impl
907 typedef decltype(__test<_Tp>(0)) type;
910 template<typename _Tp>
911 struct __is_default_constructible_atom
912 : public __and_<__not_<is_void<_Tp>>,
913 __is_default_constructible_impl<_Tp>>::type
916 template<typename _Tp, bool = is_array<_Tp>::value>
917 struct __is_default_constructible_safe;
924 template<
typename _Tp>
925 struct __is_default_constructible_safe<_Tp, true>
926 :
public __and_<__is_array_known_bounds<_Tp>,
927 __is_default_constructible_atom<typename
928 remove_all_extents<_Tp>::type>>::type
931 template<
typename _Tp>
932 struct __is_default_constructible_safe<_Tp, false>
933 :
public __is_default_constructible_atom<_Tp>::type
937 template<
typename _Tp>
938 struct is_default_constructible
939 :
public __is_default_constructible_safe<_Tp>::type
941 # 850 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
942 struct __do_is_static_castable_impl
944 template<
typename _From,
typename _To,
typename
945 = decltype(static_cast<_To>(declval<_From>()))>
946 static true_type __test(
int);
948 template<
typename,
typename>
949 static false_type __test(...);
952 template<
typename _From,
typename _To>
953 struct __is_static_castable_impl
954 :
public __do_is_static_castable_impl
956 typedef decltype(__test<_From, _To>(0)) type;
959 template<typename _From, typename _To>
960 struct __is_static_castable_safe
961 : public __is_static_castable_impl<_From, _To>::type
965 template<
typename _From,
typename _To>
966 struct __is_static_castable
967 :
public integral_constant<bool, (__is_static_castable_safe<
976 struct __do_is_direct_constructible_impl
978 template<
typename _Tp,
typename _Arg,
typename
979 = decltype(::
new _Tp(declval<_Arg>()))>
980 static true_type __test(
int);
982 template<
typename,
typename>
983 static false_type __test(...);
986 template<
typename _Tp,
typename _Arg>
987 struct __is_direct_constructible_impl
988 :
public __do_is_direct_constructible_impl
990 typedef decltype(__test<_Tp, _Arg>(0)) type;
993 template<typename _Tp, typename _Arg>
994 struct __is_direct_constructible_new_safe
995 : public __and_<is_destructible<_Tp>,
996 __is_direct_constructible_impl<_Tp, _Arg>>::type
999 template<
typename,
typename>
1002 template<
typename,
typename>
1006 struct remove_reference;
1008 template<
typename _From,
typename _To,
bool
1009 = __not_<__or_<is_void<_From>,
1010 is_function<_From>>>::value>
1011 struct __is_base_to_derived_ref;
1015 template<
typename _From,
typename _To>
1016 struct __is_base_to_derived_ref<_From, _To, true>
1018 typedef typename remove_cv<
typename remove_reference<_From
1019 >::type>::type __src_t;
1020 typedef typename remove_cv<
typename remove_reference<_To
1021 >::type>::type __dst_t;
1022 typedef __and_<__not_<is_same<__src_t, __dst_t>>,
1023 is_base_of<__src_t, __dst_t>> type;
1024 static constexpr
bool value = type::value;
1027 template<
typename _From,
typename _To>
1028 struct __is_base_to_derived_ref<_From, _To, false>
1032 template<
typename _From,
typename _To,
bool
1033 = __and_<is_lvalue_reference<_From>,
1034 is_rvalue_reference<_To>>::value>
1035 struct __is_lvalue_to_rvalue_ref;
1039 template<
typename _From,
typename _To>
1040 struct __is_lvalue_to_rvalue_ref<_From, _To, true>
1042 typedef typename remove_cv<
typename remove_reference<
1043 _From>::type>::type __src_t;
1044 typedef typename remove_cv<
typename remove_reference<
1045 _To>::type>::type __dst_t;
1046 typedef __and_<__not_<is_function<__src_t>>,
1047 __or_<is_same<__src_t, __dst_t>,
1048 is_base_of<__dst_t, __src_t>>> type;
1049 static constexpr
bool value = type::value;
1052 template<
typename _From,
typename _To>
1053 struct __is_lvalue_to_rvalue_ref<_From, _To, false>
1063 template<
typename _Tp,
typename _Arg>
1064 struct __is_direct_constructible_ref_cast
1065 :
public __and_<__is_static_castable<_Arg, _Tp>,
1066 __not_<__or_<__is_base_to_derived_ref<_Arg, _Tp>,
1067 __is_lvalue_to_rvalue_ref<_Arg, _Tp>
1071 template<
typename _Tp,
typename _Arg>
1072 struct __is_direct_constructible_new
1073 :
public conditional<is_reference<_Tp>::value,
1074 __is_direct_constructible_ref_cast<_Tp, _Arg>,
1075 __is_direct_constructible_new_safe<_Tp, _Arg>
1079 template<
typename _Tp,
typename _Arg>
1080 struct __is_direct_constructible
1081 :
public __is_direct_constructible_new<_Tp, _Arg>::type
1089 struct __do_is_nary_constructible_impl
1091 template<
typename _Tp,
typename... _Args,
typename
1092 = decltype(_Tp(declval<_Args>()...))>
1093 static true_type __test(
int);
1095 template<
typename,
typename...>
1096 static false_type __test(...);
1099 template<
typename _Tp,
typename... _Args>
1100 struct __is_nary_constructible_impl
1101 :
public __do_is_nary_constructible_impl
1103 typedef decltype(__test<_Tp, _Args...>(0)) type;
1106 template<typename _Tp, typename... _Args>
1107 struct __is_nary_constructible
1108 : public __is_nary_constructible_impl<_Tp, _Args...>::type
1110 static_assert(
sizeof...(_Args) > 1,
1111 "Only useful for > 1 arguments");
1114 template<
typename _Tp,
typename... _Args>
1115 struct __is_constructible_impl
1116 :
public __is_nary_constructible<_Tp, _Args...>
1119 template<
typename _Tp,
typename _Arg>
1120 struct __is_constructible_impl<_Tp, _Arg>
1121 :
public __is_direct_constructible<_Tp, _Arg>
1124 template<
typename _Tp>
1125 struct __is_constructible_impl<_Tp>
1126 :
public is_default_constructible<_Tp>
1130 template<
typename _Tp,
typename... _Args>
1131 struct is_constructible
1132 :
public __is_constructible_impl<_Tp, _Args...>::type
1135 template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1136 struct __is_copy_constructible_impl;
1138 template<
typename _Tp>
1139 struct __is_copy_constructible_impl<_Tp, false>
1140 :
public false_type { };
1142 template<
typename _Tp>
1143 struct __is_copy_constructible_impl<_Tp, true>
1144 :
public is_constructible<_Tp, const _Tp&>
1148 template<
typename _Tp>
1149 struct is_copy_constructible
1150 :
public __is_copy_constructible_impl<_Tp>
1153 template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1154 struct __is_move_constructible_impl;
1156 template<
typename _Tp>
1157 struct __is_move_constructible_impl<_Tp, false>
1158 :
public false_type { };
1160 template<
typename _Tp>
1161 struct __is_move_constructible_impl<_Tp, true>
1162 :
public is_constructible<_Tp, _Tp&&>
1166 template<
typename _Tp>
1167 struct is_move_constructible
1168 :
public __is_move_constructible_impl<_Tp>
1171 template<
typename _Tp>
1172 struct __is_nt_default_constructible_atom
1173 :
public integral_constant<bool, noexcept(_Tp())>
1176 template<typename _Tp, bool = is_array<_Tp>::value>
1177 struct __is_nt_default_constructible_impl;
1179 template<
typename _Tp>
1180 struct __is_nt_default_constructible_impl<_Tp, true>
1181 :
public __and_<__is_array_known_bounds<_Tp>,
1182 __is_nt_default_constructible_atom<typename
1183 remove_all_extents<_Tp>::type>>::type
1186 template<
typename _Tp>
1187 struct __is_nt_default_constructible_impl<_Tp, false>
1188 :
public __is_nt_default_constructible_atom<_Tp>
1192 template<
typename _Tp>
1193 struct is_nothrow_default_constructible
1194 :
public __and_<is_default_constructible<_Tp>,
1195 __is_nt_default_constructible_impl<_Tp>>::type
1198 template<
typename _Tp,
typename... _Args>
1199 struct __is_nt_constructible_impl
1200 :
public integral_constant<bool, noexcept(_Tp(declval<_Args>()...))>
1203 template<
typename _Tp,
typename _Arg>
1204 struct __is_nt_constructible_impl<_Tp, _Arg>
1205 :
public integral_constant<bool,
1206 noexcept(static_cast<_Tp>(declval<_Arg>()))>
1209 template<
typename _Tp>
1210 struct __is_nt_constructible_impl<_Tp>
1211 :
public is_nothrow_default_constructible<_Tp>
1215 template<
typename _Tp,
typename... _Args>
1216 struct is_nothrow_constructible
1217 :
public __and_<is_constructible<_Tp, _Args...>,
1218 __is_nt_constructible_impl<_Tp, _Args...>>::type
1221 template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1222 struct __is_nothrow_copy_constructible_impl;
1224 template<
typename _Tp>
1225 struct __is_nothrow_copy_constructible_impl<_Tp, false>
1226 :
public false_type { };
1228 template<
typename _Tp>
1229 struct __is_nothrow_copy_constructible_impl<_Tp, true>
1230 :
public is_nothrow_constructible<_Tp, const _Tp&>
1234 template<
typename _Tp>
1235 struct is_nothrow_copy_constructible
1236 :
public __is_nothrow_copy_constructible_impl<_Tp>
1239 template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1240 struct __is_nothrow_move_constructible_impl;
1242 template<
typename _Tp>
1243 struct __is_nothrow_move_constructible_impl<_Tp, false>
1244 :
public false_type { };
1246 template<
typename _Tp>
1247 struct __is_nothrow_move_constructible_impl<_Tp, true>
1248 :
public is_nothrow_constructible<_Tp, _Tp&&>
1252 template<
typename _Tp>
1253 struct is_nothrow_move_constructible
1254 :
public __is_nothrow_move_constructible_impl<_Tp>
1257 template<
typename _Tp,
typename _Up>
1258 class __is_assignable_helper
1260 template<
typename _Tp1,
typename _Up1,
1261 typename = decltype(declval<_Tp1>() = declval<_Up1>())>
1265 template<
typename,
typename>
1270 typedef decltype(__test<_Tp, _Up>(0)) type;
1274 template<typename _Tp, typename _Up>
1275 struct is_assignable
1276 : public __is_assignable_helper<_Tp, _Up>::type
1279 template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1280 struct __is_copy_assignable_impl;
1282 template<
typename _Tp>
1283 struct __is_copy_assignable_impl<_Tp, false>
1284 :
public false_type { };
1286 template<
typename _Tp>
1287 struct __is_copy_assignable_impl<_Tp, true>
1288 :
public is_assignable<_Tp&, const _Tp&>
1292 template<
typename _Tp>
1293 struct is_copy_assignable
1294 :
public __is_copy_assignable_impl<_Tp>
1297 template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1298 struct __is_move_assignable_impl;
1300 template<
typename _Tp>
1301 struct __is_move_assignable_impl<_Tp, false>
1302 :
public false_type { };
1304 template<
typename _Tp>
1305 struct __is_move_assignable_impl<_Tp, true>
1306 :
public is_assignable<_Tp&, _Tp&&>
1310 template<
typename _Tp>
1311 struct is_move_assignable
1312 :
public __is_move_assignable_impl<_Tp>
1315 template<
typename _Tp,
typename _Up>
1316 struct __is_nt_assignable_impl
1317 :
public integral_constant<bool, noexcept(declval<_Tp>() = declval<_Up>())>
1321 template<
typename _Tp,
typename _Up>
1322 struct is_nothrow_assignable
1323 :
public __and_<is_assignable<_Tp, _Up>,
1324 __is_nt_assignable_impl<_Tp, _Up>>::type
1327 template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1328 struct __is_nt_copy_assignable_impl;
1330 template<
typename _Tp>
1331 struct __is_nt_copy_assignable_impl<_Tp, false>
1332 :
public false_type { };
1334 template<
typename _Tp>
1335 struct __is_nt_copy_assignable_impl<_Tp, true>
1336 :
public is_nothrow_assignable<_Tp&, const _Tp&>
1340 template<
typename _Tp>
1341 struct is_nothrow_copy_assignable
1342 :
public __is_nt_copy_assignable_impl<_Tp>
1345 template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1346 struct __is_nt_move_assignable_impl;
1348 template<
typename _Tp>
1349 struct __is_nt_move_assignable_impl<_Tp, false>
1350 :
public false_type { };
1352 template<
typename _Tp>
1353 struct __is_nt_move_assignable_impl<_Tp, true>
1354 :
public is_nothrow_assignable<_Tp&, _Tp&&>
1358 template<
typename _Tp>
1359 struct is_nothrow_move_assignable
1360 :
public __is_nt_move_assignable_impl<_Tp>
1362 # 1286 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1363 template<
typename _Tp>
1364 struct is_trivially_destructible
1365 :
public __and_<is_destructible<_Tp>, integral_constant<bool,
1366 __has_trivial_destructor(_Tp)>>::type
1370 template<
typename _Tp>
1371 struct has_trivial_default_constructor
1372 :
public integral_constant<bool, __has_trivial_constructor(_Tp)>
1376 template<
typename _Tp>
1377 struct has_trivial_copy_constructor
1378 :
public integral_constant<bool, __has_trivial_copy(_Tp)>
1382 template<
typename _Tp>
1383 struct has_trivial_copy_assign
1384 :
public integral_constant<bool, __has_trivial_assign(_Tp)>
1388 template<
typename _Tp>
1389 struct has_virtual_destructor
1390 :
public integral_constant<bool, __has_virtual_destructor(_Tp)>
1397 template<
typename _Tp>
1399 :
public integral_constant<std::size_t, __alignof__(_Tp)> { };
1404 :
public integral_constant<std::size_t, 0> { };
1406 template<
typename _Tp, std::
size_t _Size>
1407 struct rank<_Tp[_Size]>
1408 :
public integral_constant<std::size_t, 1 + rank<_Tp>::value> { };
1410 template<
typename _Tp>
1412 :
public integral_constant<std::size_t, 1 + rank<_Tp>::value> { };
1415 template<
typename,
unsigned _U
int>
1417 :
public integral_constant<std::size_t, 0> { };
1419 template<
typename _Tp,
unsigned _U
int, std::
size_t _Size>
1420 struct extent<_Tp[_Size], _Uint>
1421 :
public integral_constant<std::size_t,
1422 _Uint == 0 ? _Size : extent<_Tp,
1426 template<
typename _Tp,
unsigned _U
int>
1427 struct extent<_Tp[], _Uint>
1428 :
public integral_constant<std::size_t,
1429 _Uint == 0 ? 0 : extent<_Tp,
1437 template<
typename,
typename>
1439 :
public false_type { };
1441 template<
typename _Tp>
1442 struct is_same<_Tp, _Tp>
1443 :
public true_type { };
1446 template<
typename _Base,
typename _Derived>
1448 :
public integral_constant<bool, __is_base_of(_Base, _Derived)>
1451 template<
typename _From,
typename _To,
1452 bool = __or_<is_void<_From>, is_function<_To>,
1453 is_array<_To>>::value>
1454 struct __is_convertible_helper
1455 {
typedef typename is_void<_To>::type type; };
1457 template<
typename _From,
typename _To>
1458 class __is_convertible_helper<_From, _To, false>
1460 template<
typename _To1>
1461 static void __test_aux(_To1);
1463 template<
typename _From1,
typename _To1,
1464 typename = decltype(__test_aux<_To1>(std::declval<_From1>()))>
1468 template<
typename,
typename>
1473 typedef decltype(__test<_From, _To>(0)) type;
1478 template<typename _From, typename _To>
1479 struct is_convertible
1480 : public __is_convertible_helper<_From, _To>::type
1487 template<
typename _Tp>
1489 {
typedef _Tp type; };
1491 template<
typename _Tp>
1492 struct remove_const<_Tp const>
1493 {
typedef _Tp type; };
1496 template<
typename _Tp>
1497 struct remove_volatile
1498 {
typedef _Tp type; };
1500 template<
typename _Tp>
1501 struct remove_volatile<_Tp volatile>
1502 {
typedef _Tp type; };
1505 template<
typename _Tp>
1509 remove_const<typename remove_volatile<_Tp>::type>::type type;
1513 template<
typename _Tp>
1515 {
typedef _Tp
const type; };
1518 template<
typename _Tp>
1520 {
typedef _Tp
volatile type; };
1523 template<
typename _Tp>
1527 add_const<typename add_volatile<_Tp>::type>::type type;
1529 # 1482 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1530 template<
typename _Tp>
1531 struct remove_reference
1532 {
typedef _Tp type; };
1534 template<
typename _Tp>
1535 struct remove_reference<_Tp&>
1536 {
typedef _Tp type; };
1538 template<
typename _Tp>
1539 struct remove_reference<_Tp&&>
1540 {
typedef _Tp type; };
1542 template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1543 struct __add_lvalue_reference_helper
1544 {
typedef _Tp type; };
1546 template<
typename _Tp>
1547 struct __add_lvalue_reference_helper<_Tp, true>
1548 {
typedef _Tp& type; };
1551 template<
typename _Tp>
1552 struct add_lvalue_reference
1553 :
public __add_lvalue_reference_helper<_Tp>
1556 template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1557 struct __add_rvalue_reference_helper
1558 {
typedef _Tp type; };
1560 template<
typename _Tp>
1561 struct __add_rvalue_reference_helper<_Tp, true>
1562 {
typedef _Tp&& type; };
1565 template<
typename _Tp>
1566 struct add_rvalue_reference
1567 :
public __add_rvalue_reference_helper<_Tp>
1569 # 1539 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1570 template<
typename _Unqualified,
bool _IsConst,
bool _IsVol>
1571 struct __cv_selector;
1573 template<
typename _Unqualified>
1574 struct __cv_selector<_Unqualified, false, false>
1575 {
typedef _Unqualified __type; };
1577 template<
typename _Unqualified>
1578 struct __cv_selector<_Unqualified, false, true>
1579 {
typedef volatile _Unqualified __type; };
1581 template<
typename _Unqualified>
1582 struct __cv_selector<_Unqualified, true, false>
1583 {
typedef const _Unqualified __type; };
1585 template<
typename _Unqualified>
1586 struct __cv_selector<_Unqualified, true, true>
1587 {
typedef const volatile _Unqualified __type; };
1589 template<
typename _Qualified,
typename _Unqualified,
1590 bool _IsConst = is_const<_Qualified>::value,
1591 bool _IsVol = is_volatile<_Qualified>::value>
1592 class __match_cv_qualifiers
1594 typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match;
1597 typedef typename __match::__type __type;
1601 template<
typename _Tp>
1602 struct __make_unsigned
1603 {
typedef _Tp __type; };
1606 struct __make_unsigned<char>
1607 {
typedef unsigned char __type; };
1610 struct __make_unsigned<signed char>
1611 {
typedef unsigned char __type; };
1614 struct __make_unsigned<short>
1615 {
typedef unsigned short __type; };
1618 struct __make_unsigned<int>
1619 {
typedef unsigned int __type; };
1622 struct __make_unsigned<long>
1623 {
typedef unsigned long __type; };
1626 struct __make_unsigned<long long>
1627 {
typedef unsigned long long __type; };
1631 struct __make_unsigned<wchar_t> : __make_unsigned<int>
1633 # 1611 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1634 template<
typename _Tp,
1635 bool _IsInt = is_integral<_Tp>::value,
1636 bool _IsEnum = is_enum<_Tp>::value>
1637 class __make_unsigned_selector;
1639 template<
typename _Tp>
1640 class __make_unsigned_selector<_Tp, true, false>
1642 typedef __make_unsigned<typename remove_cv<_Tp>::type> __unsignedt;
1643 typedef typename __unsignedt::__type __unsigned_type;
1644 typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned;
1647 typedef typename __cv_unsigned::__type __type;
1650 template<
typename _Tp>
1651 class __make_unsigned_selector<_Tp, false, true>
1654 typedef unsigned char __smallest;
1655 static const bool __b0 =
sizeof(_Tp) <=
sizeof(__smallest);
1656 static const bool __b1 =
sizeof(_Tp) <=
sizeof(
unsigned short);
1657 static const bool __b2 =
sizeof(_Tp) <=
sizeof(
unsigned int);
1658 typedef conditional<__b2, unsigned int, unsigned long> __cond2;
1659 typedef typename __cond2::type __cond2_type;
1660 typedef conditional<__b1, unsigned short, __cond2_type> __cond1;
1661 typedef typename __cond1::type __cond1_type;
1664 typedef typename conditional<__b0, __smallest, __cond1_type>::type __type;
1671 template<
typename _Tp>
1672 struct make_unsigned
1673 {
typedef typename __make_unsigned_selector<_Tp>::__type type; };
1677 struct make_unsigned<bool>;
1681 template<
typename _Tp>
1682 struct __make_signed
1683 {
typedef _Tp __type; };
1686 struct __make_signed<char>
1687 {
typedef signed char __type; };
1690 struct __make_signed<unsigned char>
1691 {
typedef signed char __type; };
1694 struct __make_signed<unsigned short>
1695 {
typedef signed short __type; };
1698 struct __make_signed<unsigned int>
1699 {
typedef signed int __type; };
1702 struct __make_signed<unsigned long>
1703 {
typedef signed long __type; };
1706 struct __make_signed<unsigned long long>
1707 {
typedef signed long long __type; };
1708 # 1693 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1710 struct __make_signed<char16_t> : __make_signed<uint_least16_t>
1713 struct __make_signed<char32_t> : __make_signed<uint_least32_t>
1715 # 1708 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1716 template<
typename _Tp,
1717 bool _IsInt = is_integral<_Tp>::value,
1718 bool _IsEnum = is_enum<_Tp>::value>
1719 class __make_signed_selector;
1721 template<
typename _Tp>
1722 class __make_signed_selector<_Tp, true, false>
1724 typedef __make_signed<typename remove_cv<_Tp>::type> __signedt;
1725 typedef typename __signedt::__type __signed_type;
1726 typedef __match_cv_qualifiers<_Tp, __signed_type> __cv_signed;
1729 typedef typename __cv_signed::__type __type;
1732 template<
typename _Tp>
1733 class __make_signed_selector<_Tp, false, true>
1736 typedef signed char __smallest;
1737 static const bool __b0 =
sizeof(_Tp) <=
sizeof(__smallest);
1738 static const bool __b1 =
sizeof(_Tp) <=
sizeof(
signed short);
1739 static const bool __b2 =
sizeof(_Tp) <=
sizeof(
signed int);
1740 typedef conditional<__b2, signed int, signed long> __cond2;
1741 typedef typename __cond2::type __cond2_type;
1742 typedef conditional<__b1, signed short, __cond2_type> __cond1;
1743 typedef typename __cond1::type __cond1_type;
1746 typedef typename conditional<__b0, __smallest, __cond1_type>::type __type;
1753 template<
typename _Tp>
1755 {
typedef typename __make_signed_selector<_Tp>::__type type; };
1759 struct make_signed<bool>;
1760 # 1766 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1761 template<
typename _Tp>
1762 struct remove_extent
1763 {
typedef _Tp type; };
1765 template<
typename _Tp, std::
size_t _Size>
1766 struct remove_extent<_Tp[_Size]>
1767 {
typedef _Tp type; };
1769 template<
typename _Tp>
1770 struct remove_extent<_Tp[]>
1771 {
typedef _Tp type; };
1774 template<
typename _Tp>
1775 struct remove_all_extents
1776 {
typedef _Tp type; };
1778 template<
typename _Tp, std::
size_t _Size>
1779 struct remove_all_extents<_Tp[_Size]>
1780 {
typedef typename remove_all_extents<_Tp>::type type; };
1782 template<
typename _Tp>
1783 struct remove_all_extents<_Tp[]>
1784 {
typedef typename remove_all_extents<_Tp>::type type; };
1785 # 1803 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1786 template<
typename _Tp,
typename>
1787 struct __remove_pointer_helper
1788 {
typedef _Tp type; };
1790 template<
typename _Tp,
typename _Up>
1791 struct __remove_pointer_helper<_Tp, _Up*>
1792 {
typedef _Up type; };
1795 template<
typename _Tp>
1796 struct remove_pointer
1797 :
public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type>
1801 template<
typename _Tp,
bool = __or_<__is_referenceable<_Tp>,
1802 is_
void<_Tp>>::value>
1803 struct __add_pointer_helper
1804 {
typedef _Tp type; };
1806 template<
typename _Tp>
1807 struct __add_pointer_helper<_Tp, true>
1808 {
typedef typename remove_reference<_Tp>::type* type; };
1810 template<
typename _Tp>
1812 :
public __add_pointer_helper<_Tp>
1814 # 1842 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1815 template<std::
size_t _Len>
1816 struct __aligned_storage_msa
1820 unsigned char __data[_Len];
1821 struct __attribute__((__aligned__)) { } __align;
1824 # 1862 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1825 template<std::size_t _Len, std::size_t _Align =
1826 __alignof__(
typename __aligned_storage_msa<_Len>::__type)>
1827 struct aligned_storage
1831 unsigned char __data[_Len];
1832 struct __attribute__((__aligned__((_Align)))) { } __align;
1839 template<
typename _Up,
1840 bool _IsArray = is_array<_Up>::value,
1841 bool _IsFunction = is_function<_Up>::value>
1842 struct __decay_selector;
1845 template<
typename _Up>
1846 struct __decay_selector<_Up, false, false>
1847 {
typedef typename remove_cv<_Up>::type __type; };
1849 template<
typename _Up>
1850 struct __decay_selector<_Up, true, false>
1851 {
typedef typename remove_extent<_Up>::type* __type; };
1853 template<
typename _Up>
1854 struct __decay_selector<_Up, false, true>
1855 {
typedef typename add_pointer<_Up>::type __type; };
1858 template<
typename _Tp>
1861 typedef typename remove_reference<_Tp>::type __remove_type;
1864 typedef typename __decay_selector<__remove_type>::__type type;
1867 template<
typename _Tp>
1868 class reference_wrapper;
1871 template<
typename _Tp>
1872 struct __strip_reference_wrapper
1877 template<
typename _Tp>
1878 struct __strip_reference_wrapper<reference_wrapper<_Tp> >
1880 typedef _Tp& __type;
1883 template<
typename _Tp>
1884 struct __decay_and_strip
1886 typedef typename __strip_reference_wrapper<
1887 typename decay<_Tp>::type>::__type __type;
1893 template<
bool,
typename _Tp =
void>
1898 template<
typename _Tp>
1899 struct enable_if<true, _Tp>
1900 {
typedef _Tp type; };
1902 template<
typename... _Cond>
1903 using _Require =
typename enable_if<__and_<_Cond...>::value>::type;
1907 template<
bool _Cond,
typename _Iftrue,
typename _Iffalse>
1909 {
typedef _Iftrue type; };
1912 template<
typename _Iftrue,
typename _Iffalse>
1913 struct conditional<false, _Iftrue, _Iffalse>
1914 {
typedef _Iffalse type; };
1917 template<
typename... _Tp>
1922 struct __do_common_type_impl
1924 template<
typename _Tp,
typename _Up>
1925 static __success_type<
typename decay<decltype
1926 (
true ? std::declval<_Tp>()
1927 : std::declval<_Up>())>::type> _S_test(
int);
1929 template<
typename,
typename>
1930 static __failure_type _S_test(...);
1933 template<
typename _Tp,
typename _Up>
1934 struct __common_type_impl
1935 :
private __do_common_type_impl
1937 typedef decltype(_S_test<_Tp, _Up>(0)) type;
1940 struct __do_member_type_wrapper
1942 template<
typename _Tp>
1943 static __success_type<typename _Tp::type> _S_test(
int);
1946 static __failure_type _S_test(...);
1949 template<
typename _Tp>
1950 struct __member_type_wrapper
1951 :
private __do_member_type_wrapper
1953 typedef decltype(_S_test<_Tp>(0)) type;
1956 template<typename _CTp, typename... _Args>
1957 struct __expanded_common_type_wrapper
1959 typedef common_type<
typename _CTp::type, _Args...> type;
1962 template<
typename... _Args>
1963 struct __expanded_common_type_wrapper<__failure_type, _Args...>
1964 {
typedef __failure_type type; };
1966 template<
typename _Tp>
1967 struct common_type<_Tp>
1968 {
typedef typename decay<_Tp>::type type; };
1970 template<
typename _Tp,
typename _Up>
1971 struct common_type<_Tp, _Up>
1972 :
public __common_type_impl<_Tp, _Up>::type
1975 template<
typename _Tp,
typename _Up,
typename... _Vp>
1976 struct common_type<_Tp, _Up, _Vp...>
1977 :
public __expanded_common_type_wrapper<typename __member_type_wrapper<
1978 common_type<_Tp, _Up>>::type, _Vp...>::type
1982 template<
typename _Tp>
1983 struct underlying_type
1985 typedef __underlying_type(_Tp) type;
1988 template<typename _Tp>
1989 struct __declval_protector
1991 static const bool __stop =
false;
1992 static typename add_rvalue_reference<_Tp>::type __delegate();
1995 template<
typename _Tp>
1996 inline typename add_rvalue_reference<_Tp>::type
1999 static_assert(__declval_protector<_Tp>::__stop,
2000 "declval() must not be used!");
2001 return __declval_protector<_Tp>::__delegate();
2005 template<
typename _Signature>
2011 struct __result_of_memfun_ref_impl
2013 template<
typename _Fp,
typename _Tp1,
typename... _Args>
2014 static __success_type<decltype(
2015 (std::declval<_Tp1>().*std::declval<_Fp>())(std::declval<_Args>()...)
2018 template<
typename...>
2019 static __failure_type _S_test(...);
2022 template<
typename _MemPtr,
typename _Arg,
typename... _Args>
2023 struct __result_of_memfun_ref
2024 :
private __result_of_memfun_ref_impl
2026 typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type;
2030 struct __result_of_memfun_deref_impl
2032 template<
typename _Fp,
typename _Tp1,
typename... _Args>
2033 static __success_type<decltype(
2034 ((*std::declval<_Tp1>()).*std::declval<_Fp>())(std::declval<_Args>()...)
2037 template<
typename...>
2038 static __failure_type _S_test(...);
2041 template<
typename _MemPtr,
typename _Arg,
typename... _Args>
2042 struct __result_of_memfun_deref
2043 :
private __result_of_memfun_deref_impl
2045 typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type;
2049 struct __result_of_memobj_ref_impl
2051 template<
typename _Fp,
typename _Tp1>
2052 static __success_type<decltype(
2053 std::declval<_Tp1>().*std::declval<_Fp>()
2056 template<
typename,
typename>
2057 static __failure_type _S_test(...);
2060 template<
typename _MemPtr,
typename _Arg>
2061 struct __result_of_memobj_ref
2062 :
private __result_of_memobj_ref_impl
2064 typedef decltype(_S_test<_MemPtr, _Arg>(0)) type;
2068 struct __result_of_memobj_deref_impl
2070 template<
typename _Fp,
typename _Tp1>
2071 static __success_type<decltype(
2072 (*std::declval<_Tp1>()).*std::declval<_Fp>()
2075 template<
typename,
typename>
2076 static __failure_type _S_test(...);
2079 template<
typename _MemPtr,
typename _Arg>
2080 struct __result_of_memobj_deref
2081 :
private __result_of_memobj_deref_impl
2083 typedef decltype(_S_test<_MemPtr, _Arg>(0)) type;
2086 template<typename _MemPtr, typename _Arg>
2087 struct __result_of_memobj;
2089 template<typename _Res, typename _Class, typename _Arg>
2090 struct __result_of_memobj<_Res _Class::*, _Arg>
2092 typedef typename remove_cv<
typename remove_reference<
2093 _Arg>::type>::type _Argval;
2094 typedef _Res _Class::* _MemPtr;
2095 typedef typename conditional<__or_<is_same<_Argval, _Class>,
2096 is_base_of<_Class, _Argval>>::value,
2097 __result_of_memobj_ref<_MemPtr, _Arg>,
2098 __result_of_memobj_deref<_MemPtr, _Arg>
2102 template<
typename _MemPtr,
typename _Arg,
typename... _Args>
2103 struct __result_of_memfun;
2105 template<
typename _Res,
typename _Class,
typename _Arg,
typename... _Args>
2106 struct __result_of_memfun<_Res _Class::*, _Arg, _Args...>
2108 typedef typename remove_cv<
typename remove_reference<
2109 _Arg>::type>::type _Argval;
2110 typedef _Res _Class::* _MemPtr;
2111 typedef typename conditional<__or_<is_same<_Argval, _Class>,
2112 is_base_of<_Class, _Argval>>::value,
2113 __result_of_memfun_ref<_MemPtr, _Arg, _Args...>,
2114 __result_of_memfun_deref<_MemPtr, _Arg, _Args...>
2118 template<bool, bool,
typename _Functor,
typename... _ArgTypes>
2119 struct __result_of_impl
2121 typedef __failure_type type;
2124 template<
typename _MemPtr,
typename _Arg>
2125 struct __result_of_impl<true, false, _MemPtr, _Arg>
2126 :
public __result_of_memobj<typename decay<_MemPtr>::type, _Arg>
2129 template<
typename _MemPtr,
typename _Arg,
typename... _Args>
2130 struct __result_of_impl<false, true, _MemPtr, _Arg, _Args...>
2131 :
public __result_of_memfun<typename decay<_MemPtr>::type, _Arg, _Args...>
2135 struct __result_of_other_impl
2137 template<
typename _Fn,
typename... _Args>
2138 static __success_type<decltype(
2139 std::declval<_Fn>()(std::declval<_Args>()...)
2142 template<
typename...>
2143 static __failure_type _S_test(...);
2146 template<
typename _Functor,
typename... _ArgTypes>
2147 struct __result_of_impl<false, false, _Functor, _ArgTypes...>
2148 :
private __result_of_other_impl
2150 typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type;
2153 template<typename _Functor, typename... _ArgTypes>
2154 struct result_of<_Functor(_ArgTypes...)>
2155 : public __result_of_impl<
2156 is_member_object_pointer<
2157 typename remove_reference<_Functor>::type
2159 is_member_function_pointer<
2160 typename remove_reference<_Functor>::type
2162 _Functor, _ArgTypes...
2165 # 2265 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
2171 # 1 "./integral.hpp" 1
2172 # 25 "./integral.hpp"
2173 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 1 3
2174 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 3
2177 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stringfwd.h" 1 3
2178 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stringfwd.h" 3
2181 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/memoryfwd.h" 1 3
2182 # 47 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/memoryfwd.h" 3
2186 namespace std __attribute__ ((__visibility__ ("default")))
2188 # 63 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/memoryfwd.h" 3
2193 class allocator<void>;
2196 template<
typename,
typename>
2197 struct uses_allocator;
2203 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stringfwd.h" 2 3
2205 namespace std __attribute__ ((__visibility__ ("default")))
2207 # 52 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stringfwd.h" 3
2208 template<
class _CharT>
2211 template<
typename _CharT,
typename _Traits =
char_traits<_CharT>,
2212 typename _Alloc = allocator<_CharT> >
2215 template<>
struct char_traits<char>;
2218 typedef basic_string<char> string;
2221 template<>
struct char_traits<wchar_t>;
2224 typedef basic_string<wchar_t> wstring;
2230 template<>
struct char_traits<char16_t>;
2231 template<>
struct char_traits<char32_t>;
2234 typedef basic_string<char16_t> u16string;
2237 typedef basic_string<char32_t> u32string;
2244 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
2245 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 1 3
2246 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 3
2248 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 1 3
2249 # 60 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
2250 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functexcept.h" 1 3
2251 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functexcept.h" 3
2252 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/exception_defines.h" 1 3
2253 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functexcept.h" 2 3
2255 namespace std __attribute__ ((__visibility__ ("default")))
2261 __throw_bad_exception(
void) __attribute__((__noreturn__));
2265 __throw_bad_alloc(
void) __attribute__((__noreturn__));
2269 __throw_bad_cast(
void) __attribute__((__noreturn__));
2272 __throw_bad_typeid(
void) __attribute__((__noreturn__));
2276 __throw_logic_error(const
char*) __attribute__((__noreturn__));
2279 __throw_domain_error(const
char*) __attribute__((__noreturn__));
2282 __throw_invalid_argument(const
char*) __attribute__((__noreturn__));
2285 __throw_length_error(const
char*) __attribute__((__noreturn__));
2288 __throw_out_of_range(const
char*) __attribute__((__noreturn__));
2291 __throw_out_of_range_fmt(const
char*, ...) __attribute__((__noreturn__))
2292 __attribute__((__format__(__printf__, 1, 2)));
2295 __throw_runtime_error(const
char*) __attribute__((__noreturn__));
2298 __throw_range_error(const
char*) __attribute__((__noreturn__));
2301 __throw_overflow_error(const
char*) __attribute__((__noreturn__));
2304 __throw_underflow_error(const
char*) __attribute__((__noreturn__));
2308 __throw_ios_failure(const
char*) __attribute__((__noreturn__));
2311 __throw_system_error(
int) __attribute__((__noreturn__));
2314 __throw_future_error(
int) __attribute__((__noreturn__));
2318 __throw_bad_function_call() __attribute__((__noreturn__));
2322 # 61 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
2323 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/cpp_type_traits.h" 1 3
2324 # 36 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/cpp_type_traits.h" 3
2325 # 68 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/cpp_type_traits.h" 3
2326 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
2330 template<
typename _Iterator,
typename _Container>
2331 class __normal_iterator;
2336 namespace std __attribute__ ((__visibility__ ("default")))
2340 struct __true_type { };
2341 struct __false_type { };
2345 {
typedef __false_type __type; };
2348 struct __truth_type<true>
2349 {
typedef __true_type __type; };
2353 template<
class _Sp,
class _Tp>
2356 enum { __value = bool(_Sp::__value) || bool(_Tp::__value) };
2357 typedef typename __truth_type<__value>::__type __type;
2361 template<
typename,
typename>
2364 enum { __value = 0 };
2365 typedef __false_type __type;
2368 template<
typename _Tp>
2369 struct __are_same<_Tp, _Tp>
2371 enum { __value = 1 };
2372 typedef __true_type __type;
2376 template<
typename _Tp>
2379 enum { __value = 0 };
2380 typedef __false_type __type;
2384 struct __is_void<void>
2386 enum { __value = 1 };
2387 typedef __true_type __type;
2393 template<
typename _Tp>
2396 enum { __value = 0 };
2397 typedef __false_type __type;
2404 struct __is_integer<bool>
2406 enum { __value = 1 };
2407 typedef __true_type __type;
2411 struct __is_integer<char>
2413 enum { __value = 1 };
2414 typedef __true_type __type;
2418 struct __is_integer<signed char>
2420 enum { __value = 1 };
2421 typedef __true_type __type;
2425 struct __is_integer<unsigned char>
2427 enum { __value = 1 };
2428 typedef __true_type __type;
2433 struct __is_integer<wchar_t>
2435 enum { __value = 1 };
2436 typedef __true_type __type;
2442 struct __is_integer<char16_t>
2444 enum { __value = 1 };
2445 typedef __true_type __type;
2449 struct __is_integer<char32_t>
2451 enum { __value = 1 };
2452 typedef __true_type __type;
2457 struct __is_integer<short>
2459 enum { __value = 1 };
2460 typedef __true_type __type;
2464 struct __is_integer<unsigned short>
2466 enum { __value = 1 };
2467 typedef __true_type __type;
2471 struct __is_integer<int>
2473 enum { __value = 1 };
2474 typedef __true_type __type;
2478 struct __is_integer<unsigned int>
2480 enum { __value = 1 };
2481 typedef __true_type __type;
2485 struct __is_integer<long>
2487 enum { __value = 1 };
2488 typedef __true_type __type;
2492 struct __is_integer<unsigned long>
2494 enum { __value = 1 };
2495 typedef __true_type __type;
2499 struct __is_integer<long long>
2501 enum { __value = 1 };
2502 typedef __true_type __type;
2506 struct __is_integer<unsigned long long>
2508 enum { __value = 1 };
2509 typedef __true_type __type;
2515 template<
typename _Tp>
2516 struct __is_floating
2518 enum { __value = 0 };
2519 typedef __false_type __type;
2524 struct __is_floating<float>
2526 enum { __value = 1 };
2527 typedef __true_type __type;
2531 struct __is_floating<double>
2533 enum { __value = 1 };
2534 typedef __true_type __type;
2538 struct __is_floating<long double>
2540 enum { __value = 1 };
2541 typedef __true_type __type;
2547 template<
typename _Tp>
2550 enum { __value = 0 };
2551 typedef __false_type __type;
2554 template<
typename _Tp>
2555 struct __is_pointer<_Tp*>
2557 enum { __value = 1 };
2558 typedef __true_type __type;
2564 template<
typename _Tp>
2565 struct __is_normal_iterator
2567 enum { __value = 0 };
2568 typedef __false_type __type;
2571 template<
typename _Iterator,
typename _Container>
2572 struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator,
2575 enum { __value = 1 };
2576 typedef __true_type __type;
2582 template<
typename _Tp>
2583 struct __is_arithmetic
2584 :
public __traitor<__is_integer<_Tp>, __is_floating<_Tp> >
2590 template<
typename _Tp>
2592 :
public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
2598 template<
typename _Tp>
2601 enum { __value = 0 };
2602 typedef __false_type __type;
2606 struct __is_char<char>
2608 enum { __value = 1 };
2609 typedef __true_type __type;
2614 struct __is_char<wchar_t>
2616 enum { __value = 1 };
2617 typedef __true_type __type;
2621 template<
typename _Tp>
2624 enum { __value = 0 };
2625 typedef __false_type __type;
2629 struct __is_byte<char>
2631 enum { __value = 1 };
2632 typedef __true_type __type;
2636 struct __is_byte<signed char>
2638 enum { __value = 1 };
2639 typedef __true_type __type;
2643 struct __is_byte<unsigned char>
2645 enum { __value = 1 };
2646 typedef __true_type __type;
2652 template<
typename _Tp>
2653 struct __is_move_iterator
2655 enum { __value = 0 };
2656 typedef __false_type __type;
2660 template<
typename _Iterator>
2661 class move_iterator;
2663 template<
typename _Iterator>
2664 struct __is_move_iterator< move_iterator<_Iterator> >
2666 enum { __value = 1 };
2667 typedef __true_type __type;
2673 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
2674 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/type_traits.h" 1 3
2675 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/type_traits.h" 3
2680 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
2685 template<
bool,
typename>
2689 template<
typename _Tp>
2690 struct __enable_if<true, _Tp>
2691 {
typedef _Tp __type; };
2695 template<
bool _Cond,
typename _Iftrue,
typename _Iffalse>
2696 struct __conditional_type
2697 {
typedef _Iftrue __type; };
2699 template<
typename _Iftrue,
typename _Iffalse>
2700 struct __conditional_type<false, _Iftrue, _Iffalse>
2701 {
typedef _Iffalse __type; };
2705 template<
typename _Tp>
2706 struct __add_unsigned
2709 typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
2712 typedef typename __if_type::__type __type;
2716 struct __add_unsigned<char>
2717 {
typedef unsigned char __type; };
2720 struct __add_unsigned<signed char>
2721 {
typedef unsigned char __type; };
2724 struct __add_unsigned<short>
2725 {
typedef unsigned short __type; };
2728 struct __add_unsigned<int>
2729 {
typedef unsigned int __type; };
2732 struct __add_unsigned<long>
2733 {
typedef unsigned long __type; };
2736 struct __add_unsigned<long long>
2737 {
typedef unsigned long long __type; };
2741 struct __add_unsigned<bool>;
2744 struct __add_unsigned<wchar_t>;
2748 template<
typename _Tp>
2749 struct __remove_unsigned
2752 typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
2755 typedef typename __if_type::__type __type;
2759 struct __remove_unsigned<char>
2760 {
typedef signed char __type; };
2763 struct __remove_unsigned<unsigned char>
2764 {
typedef signed char __type; };
2767 struct __remove_unsigned<unsigned short>
2768 {
typedef short __type; };
2771 struct __remove_unsigned<unsigned int>
2772 {
typedef int __type; };
2775 struct __remove_unsigned<unsigned long>
2776 {
typedef long __type; };
2779 struct __remove_unsigned<unsigned long long>
2780 {
typedef long long __type; };
2784 struct __remove_unsigned<bool>;
2787 struct __remove_unsigned<wchar_t>;
2791 template<
typename _Type>
2793 __is_null_pointer(_Type* __ptr)
2794 {
return __ptr == 0; }
2796 template<
typename _Type>
2798 __is_null_pointer(_Type)
2803 __is_null_pointer(std::nullptr_t)
2808 template<typename _Tp, bool = std::__is_integer<_Tp>::__value>
2810 {
typedef double __type; };
2815 template<
typename _Tp>
2816 struct __promote<_Tp, false>
2820 struct __promote<long double>
2821 {
typedef long double __type; };
2824 struct __promote<double>
2825 {
typedef double __type; };
2828 struct __promote<float>
2829 {
typedef float __type; };
2831 template<
typename _Tp,
typename _Up,
2832 typename _Tp2 =
typename __promote<_Tp>::__type,
2833 typename _Up2 =
typename __promote<_Up>::__type>
2836 typedef __typeof__(_Tp2() + _Up2()) __type;
2839 template<typename _Tp, typename _Up, typename _Vp,
2840 typename _Tp2 = typename __promote<_Tp>::__type,
2841 typename _Up2 = typename __promote<_Up>::__type,
2842 typename _Vp2 = typename __promote<_Vp>::__type>
2845 typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type;
2848 template<typename _Tp, typename _Up, typename _Vp, typename _Wp,
2849 typename _Tp2 = typename __promote<_Tp>::__type,
2850 typename _Up2 = typename __promote<_Up>::__type,
2851 typename _Vp2 = typename __promote<_Vp>::__type,
2852 typename _Wp2 = typename __promote<_Wp>::__type>
2855 typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type;
2860 # 63 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
2861 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/numeric_traits.h" 1 3
2862 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/numeric_traits.h" 3
2867 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
2869 # 54 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/numeric_traits.h" 3
2870 template<
typename _Value>
2871 struct __numeric_traits_integer
2874 static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (
sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0);
2875 static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((
sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0);
2879 static const bool __is_signed = ((_Value)(-1) < 0);
2880 static const int __digits = (
sizeof(_Value) * 8 - ((_Value)(-1) < 0));
2883 template<
typename _Value>
2884 const _Value __numeric_traits_integer<_Value>::__min;
2886 template<
typename _Value>
2887 const _Value __numeric_traits_integer<_Value>::__max;
2889 template<
typename _Value>
2890 const bool __numeric_traits_integer<_Value>::__is_signed;
2892 template<
typename _Value>
2893 const int __numeric_traits_integer<_Value>::__digits;
2894 # 99 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/numeric_traits.h" 3
2895 template<
typename _Value>
2896 struct __numeric_traits_floating
2899 static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136);
2902 static const bool __is_signed =
true;
2903 static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18);
2904 static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932);
2907 template<
typename _Value>
2908 const int __numeric_traits_floating<_Value>::__max_digits10;
2910 template<
typename _Value>
2911 const bool __numeric_traits_floating<_Value>::__is_signed;
2913 template<
typename _Value>
2914 const int __numeric_traits_floating<_Value>::__digits10;
2916 template<
typename _Value>
2917 const int __numeric_traits_floating<_Value>::__max_exponent10;
2919 template<
typename _Value>
2920 struct __numeric_traits
2921 :
public __conditional_type<std::__is_integer<_Value>::__value,
2922 __numeric_traits_integer<_Value>,
2923 __numeric_traits_floating<_Value> >::__type
2928 # 64 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
2929 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_pair.h" 1 3
2930 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_pair.h" 3
2931 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 1 3
2932 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 3
2933 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/concept_check.h" 1 3
2934 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/concept_check.h" 3
2935 # 35 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 2 3
2937 namespace std __attribute__ ((__visibility__ ("default")))
2946 template<
typename _Tp>
2948 __addressof(_Tp& __r) noexcept
2950 return reinterpret_cast<_Tp*
>
2951 (&
const_cast<char&
>(
reinterpret_cast<const volatile char&
>(__r)));
2960 namespace std __attribute__ ((__visibility__ ("default")))
2962 # 74 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 3
2963 template<
typename _Tp>
2965 forward(
typename std::remove_reference<_Tp>::type& __t) noexcept
2966 {
return static_cast<_Tp&&
>(__t); }
2974 template<
typename _Tp>
2976 forward(
typename std::remove_reference<_Tp>::type&& __t) noexcept
2978 static_assert(!std::is_lvalue_reference<_Tp>::value,
"template argument"
2979 " substituting _Tp is an lvalue reference type");
2980 return static_cast<_Tp&&
>(__t);
2988 template<
typename _Tp>
2989 constexpr
typename std::remove_reference<_Tp>::type&&
2990 move(_Tp&& __t) noexcept
2991 {
return static_cast<typename std::remove_reference<_Tp>::type&&
>(__t); }
2994 template<
typename _Tp>
2995 struct __move_if_noexcept_cond
2996 :
public __and_<__not_<is_nothrow_move_constructible<_Tp>>,
2997 is_copy_constructible<_Tp>>::type { };
2998 # 118 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 3
2999 template<
typename _Tp>
3001 conditional<__move_if_noexcept_cond<_Tp>::value,
const _Tp&, _Tp&&>::type
3002 move_if_noexcept(_Tp& __x) noexcept
3003 {
return std::move(__x); }
3004 # 133 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 3
3005 template<
typename _Tp>
3007 addressof(_Tp& __r) noexcept
3008 {
return std::__addressof(__r); }
3013 # 149 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 3
3014 namespace std __attribute__ ((__visibility__ ("default")))
3016 # 164 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 3
3017 template<
typename _Tp>
3019 swap(_Tp& __a, _Tp& __b)
3021 noexcept(__and_<is_nothrow_move_constructible<_Tp>,
3022 is_nothrow_move_assignable<_Tp>>::value)
3028 _Tp __tmp = std::move(__a);
3029 __a = std::move(__b);
3030 __b = std::move(__tmp);
3036 template<
typename _Tp,
size_t _Nm>
3038 swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
3040 noexcept(noexcept(swap(*__a, *__b)))
3043 for (
size_t __n = 0; __n < _Nm; ++__n)
3044 swap(__a[__n], __b[__n]);
3050 # 60 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_pair.h" 2 3
3056 namespace std __attribute__ ((__visibility__ ("default")))
3058 # 76 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_pair.h" 3
3059 struct piecewise_construct_t { };
3062 constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t();
3065 template<
typename...>
3068 template<std::size_t...>
3069 struct _Index_tuple;
3070 # 95 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_pair.h" 3
3071 template<
class _T1,
class _T2>
3074 typedef _T1 first_type;
3075 typedef _T2 second_type;
3085 : first(), second() { }
3088 constexpr pair(
const _T1& __a,
const _T2& __b)
3089 : first(__a), second(__b) { }
3097 template<
class _U1,
class _U2,
class =
typename
3098 enable_if<__and_<is_convertible<const _U1&, _T1>,
3099 is_convertible<const _U2&, _T2>>::value>::type>
3100 constexpr pair(
const pair<_U1, _U2>& __p)
3101 : first(__p.first), second(__p.second) { }
3103 constexpr pair(
const pair&) =
default;
3104 constexpr pair(pair&&) =
default;
3107 template<
class _U1,
class =
typename
3108 enable_if<is_convertible<_U1, _T1>::value>::type>
3109 constexpr pair(_U1&& __x,
const _T2& __y)
3110 : first(std::forward<_U1>(__x)), second(__y) { }
3112 template<
class _U2,
class =
typename
3113 enable_if<is_convertible<_U2, _T2>::value>::type>
3114 constexpr pair(
const _T1& __x, _U2&& __y)
3115 : first(__x), second(std::forward<_U2>(__y)) { }
3117 template<
class _U1,
class _U2,
class =
typename
3118 enable_if<__and_<is_convertible<_U1, _T1>,
3119 is_convertible<_U2, _T2>>::value>::type>
3120 constexpr pair(_U1&& __x, _U2&& __y)
3121 : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
3123 template<
class _U1,
class _U2,
class =
typename
3124 enable_if<__and_<is_convertible<_U1, _T1>,
3125 is_convertible<_U2, _T2>>::value>::type>
3126 constexpr pair(pair<_U1, _U2>&& __p)
3127 : first(std::forward<_U1>(__p.first)),
3128 second(std::forward<_U2>(__p.second)) { }
3130 template<
typename... _Args1,
typename... _Args2>
3131 pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>);
3134 operator=(
const pair& __p)
3137 second = __p.second;
3142 operator=(pair&& __p)
3143 noexcept(__and_<is_nothrow_move_assignable<_T1>,
3144 is_nothrow_move_assignable<_T2>>::value)
3146 first = std::forward<first_type>(__p.first);
3147 second = std::forward<second_type>(__p.second);
3151 template<
class _U1,
class _U2>
3153 operator=(
const pair<_U1, _U2>& __p)
3156 second = __p.second;
3160 template<
class _U1,
class _U2>
3162 operator=(pair<_U1, _U2>&& __p)
3164 first = std::forward<_U1>(__p.first);
3165 second = std::forward<_U2>(__p.second);
3171 noexcept(noexcept(swap(first, __p.first))
3172 && noexcept(swap(second, __p.second)))
3175 swap(first, __p.first);
3176 swap(second, __p.second);
3180 template<
typename... _Args1, std::size_t... _Indexes1,
3181 typename... _Args2, std::size_t... _Indexes2>
3182 pair(tuple<_Args1...>&, tuple<_Args2...>&,
3183 _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>);
3188 template<
class _T1,
class _T2>
3189 inline constexpr
bool
3190 operator==(
const pair<_T1, _T2>& __x,
const pair<_T1, _T2>& __y)
3191 {
return __x.first == __y.first && __x.second == __y.second; }
3194 template<
class _T1,
class _T2>
3195 inline constexpr
bool
3196 operator<(const pair<_T1, _T2>& __x,
const pair<_T1, _T2>& __y)
3197 {
return __x.first < __y.first
3198 || (!(__y.first < __x.first) && __x.second < __y.second); }
3201 template<
class _T1,
class _T2>
3202 inline constexpr
bool
3203 operator!=(
const pair<_T1, _T2>& __x,
const pair<_T1, _T2>& __y)
3204 {
return !(__x == __y); }
3207 template<
class _T1,
class _T2>
3208 inline constexpr
bool
3209 operator>(
const pair<_T1, _T2>& __x,
const pair<_T1, _T2>& __y)
3210 {
return __y < __x; }
3213 template<
class _T1,
class _T2>
3214 inline constexpr
bool
3215 operator<=(const pair<_T1, _T2>& __x,
const pair<_T1, _T2>& __y)
3216 {
return !(__y < __x); }
3219 template<
class _T1,
class _T2>
3220 inline constexpr
bool
3221 operator>=(
const pair<_T1, _T2>& __x,
const pair<_T1, _T2>& __y)
3222 {
return !(__x < __y); }
3228 template<
class _T1,
class _T2>
3230 swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)
3231 noexcept(noexcept(__x.swap(__y)))
3233 # 273 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_pair.h" 3
3234 template<
class _T1,
class _T2>
3235 constexpr pair<typename __decay_and_strip<_T1>::__type,
3236 typename __decay_and_strip<_T2>::__type>
3237 make_pair(_T1&& __x, _T2&& __y)
3239 typedef typename __decay_and_strip<_T1>::__type __ds_type1;
3240 typedef typename __decay_and_strip<_T2>::__type __ds_type2;
3241 typedef pair<__ds_type1, __ds_type2> __pair_type;
3242 return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
3244 # 293 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_pair.h" 3
3246 # 65 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
3247 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_types.h" 1 3
3248 # 63 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_types.h" 3
3256 namespace std __attribute__ ((__visibility__ ("default")))
3258 # 89 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_types.h" 3
3259 struct input_iterator_tag { };
3262 struct output_iterator_tag { };
3265 struct forward_iterator_tag :
public input_iterator_tag { };
3269 struct bidirectional_iterator_tag :
public forward_iterator_tag { };
3273 struct random_access_iterator_tag :
public bidirectional_iterator_tag { };
3274 # 116 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_types.h" 3
3275 template<
typename _Category,
typename _Tp,
typename _Distance = ptrdiff_t,
3276 typename _Pointer = _Tp*,
typename _Reference = _Tp&>
3280 typedef _Category iterator_category;
3282 typedef _Tp value_type;
3284 typedef _Distance difference_type;
3286 typedef _Pointer pointer;
3288 typedef _Reference reference;
3290 # 142 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_types.h" 3
3291 template<
typename _Tp>
class __has_iterator_category_helper {
template<
typename _Up>
struct _Wrap_type { };
template<
typename _Up>
static true_type __test(_Wrap_type<typename _Up::iterator_category>*);
template<
typename _Up>
static false_type __test(...);
public:
typedef decltype(__test<_Tp>(0)) type; }; template<typename _Tp> struct __has_iterator_category : public __has_iterator_category_helper <typename remove_cv<_Tp>::type>::type { };
3293 template<
typename _Iterator,
3294 bool = __has_iterator_category<_Iterator>::value>
3295 struct __iterator_traits { };
3297 template<
typename _Iterator>
3298 struct __iterator_traits<_Iterator, true>
3300 typedef typename _Iterator::iterator_category iterator_category;
3301 typedef typename _Iterator::value_type value_type;
3302 typedef typename _Iterator::difference_type difference_type;
3303 typedef typename _Iterator::pointer pointer;
3304 typedef typename _Iterator::reference reference;
3307 template<
typename _Iterator>
3308 struct iterator_traits
3309 :
public __iterator_traits<_Iterator> { };
3310 # 174 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_types.h" 3
3311 template<
typename _Tp>
3312 struct iterator_traits<_Tp*>
3314 typedef random_access_iterator_tag iterator_category;
3315 typedef _Tp value_type;
3316 typedef ptrdiff_t difference_type;
3317 typedef _Tp* pointer;
3318 typedef _Tp& reference;
3322 template<
typename _Tp>
3323 struct iterator_traits<const _Tp*>
3325 typedef random_access_iterator_tag iterator_category;
3326 typedef _Tp value_type;
3327 typedef ptrdiff_t difference_type;
3328 typedef const _Tp* pointer;
3329 typedef const _Tp& reference;
3336 template<
typename _Iter>
3337 inline typename iterator_traits<_Iter>::iterator_category
3338 __iterator_category(
const _Iter&)
3339 {
return typename iterator_traits<_Iter>::iterator_category(); }
3345 template<
typename _Iterator,
bool _HasBase>
3348 typedef _Iterator iterator_type;
3349 static iterator_type _S_base(_Iterator __it)
3353 template<
typename _Iterator>
3354 struct _Iter_base<_Iterator, true>
3356 typedef typename _Iterator::iterator_type iterator_type;
3357 static iterator_type _S_base(_Iterator __it)
3358 {
return __it.base(); }
3362 template<
typename _InIter>
3363 using _RequireInputIter =
typename
3364 enable_if<is_convertible<
typename
3365 iterator_traits<_InIter>::iterator_category,
3366 input_iterator_tag>::value>::type;
3371 # 66 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
3372 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_funcs.h" 1 3
3373 # 63 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_funcs.h" 3
3376 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/debug/debug.h" 1 3
3377 # 46 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/debug/debug.h" 3
3380 namespace __debug { }
3386 namespace __gnu_debug
3388 using namespace std::__debug;
3390 # 66 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_funcs.h" 2 3
3392 namespace std __attribute__ ((__visibility__ ("default")))
3396 template<
typename _InputIterator>
3397 inline typename iterator_traits<_InputIterator>::difference_type
3398 __distance(_InputIterator __first, _InputIterator __last,
3404 typename iterator_traits<_InputIterator>::difference_type __n = 0;
3405 while (__first != __last)
3413 template<
typename _RandomAccessIterator>
3414 inline typename iterator_traits<_RandomAccessIterator>::difference_type
3415 __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
3416 random_access_iterator_tag)
3421 return __last - __first;
3423 # 112 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_funcs.h" 3
3424 template<
typename _InputIterator>
3425 inline typename iterator_traits<_InputIterator>::difference_type
3426 distance(_InputIterator __first, _InputIterator __last)
3429 return std::__distance(__first, __last,
3430 std::__iterator_category(__first));
3433 template<
typename _InputIterator,
typename _Distance>
3435 __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
3444 template<
typename _B
idirectionalIterator,
typename _Distance>
3446 __advance(_BidirectionalIterator& __i, _Distance __n,
3447 bidirectional_iterator_tag)
3460 template<
typename _RandomAccessIterator,
typename _Distance>
3462 __advance(_RandomAccessIterator& __i, _Distance __n,
3463 random_access_iterator_tag)
3470 # 171 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_funcs.h" 3
3471 template<
typename _InputIterator,
typename _Distance>
3473 advance(_InputIterator& __i, _Distance __n)
3476 typename iterator_traits<_InputIterator>::difference_type __d = __n;
3477 std::__advance(__i, __d, std::__iterator_category(__i));
3482 template<
typename _ForwardIterator>
3483 inline _ForwardIterator
3484 next(_ForwardIterator __x,
typename
3485 iterator_traits<_ForwardIterator>::difference_type __n = 1)
3487 std::advance(__x, __n);
3491 template<
typename _B
idirectionalIterator>
3492 inline _BidirectionalIterator
3493 prev(_BidirectionalIterator __x,
typename
3494 iterator_traits<_BidirectionalIterator>::difference_type __n = 1)
3496 std::advance(__x, -__n);
3504 # 67 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
3505 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 1 3
3506 # 66 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3507 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ptr_traits.h" 1 3
3508 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ptr_traits.h" 3
3509 namespace std __attribute__ ((__visibility__ ("default")))
3513 template<
typename _Tp>
class __has_element_type_helper {
template<
typename _Up>
struct _Wrap_type { };
template<
typename _Up>
static true_type __test(_Wrap_type<typename _Up::element_type>*);
template<
typename _Up>
static false_type __test(...);
public:
typedef decltype(__test<_Tp>(0)) type; }; template<typename _Tp> struct __has_element_type : public __has_element_type_helper <typename remove_cv<_Tp>::type>::type { };
3514 template<
typename _Tp>
class __has_difference_type_helper {
template<
typename _Up>
struct _Wrap_type { };
template<
typename _Up>
static true_type __test(_Wrap_type<typename _Up::difference_type>*);
template<
typename _Up>
static false_type __test(...);
public:
typedef decltype(__test<_Tp>(0)) type; }; template<typename _Tp> struct __has_difference_type : public __has_difference_type_helper <typename remove_cv<_Tp>::type>::type { };
3516 template<typename _Tp, bool = __has_element_type<_Tp>::value>
3517 struct __ptrtr_elt_type;
3519 template<
typename _Tp>
3520 struct __ptrtr_elt_type<_Tp, true>
3522 typedef typename _Tp::element_type __type;
3525 template<
template<
typename,
typename...>
class _SomePtr,
typename _Tp,
3527 struct __ptrtr_elt_type<_SomePtr<_Tp, _Args...>, false>
3532 template<typename _Tp, bool = __has_difference_type<_Tp>::value>
3533 struct __ptrtr_diff_type
3535 typedef typename _Tp::difference_type __type;
3538 template<
typename _Tp>
3539 struct __ptrtr_diff_type<_Tp, false>
3541 typedef ptrdiff_t __type;
3544 template<
typename _Ptr,
typename _Up>
3545 class __ptrtr_rebind_helper
3547 template<
typename _Ptr2,
typename _Up2>
3548 static constexpr true_type
3549 _S_chk(
typename _Ptr2::template rebind<_Up2>*);
3551 template<
typename,
typename>
3552 static constexpr false_type
3556 using __type = decltype(_S_chk<_Ptr, _Up>(
nullptr));
3559 template<
typename _Tp,
typename _Up,
3560 bool = __ptrtr_rebind_helper<_Tp, _Up>::__type::value>
3561 struct __ptrtr_rebind;
3563 template<
typename _Tp,
typename _Up>
3564 struct __ptrtr_rebind<_Tp, _Up, true>
3566 typedef typename _Tp::template rebind<_Up> __type;
3569 template<
template<
typename,
typename...>
class _SomePtr,
typename _Up,
3570 typename _Tp,
typename... _Args>
3571 struct __ptrtr_rebind<_SomePtr<_Tp, _Args...>, _Up, false>
3573 typedef _SomePtr<_Up, _Args...> __type;
3576 template<typename _Tp, typename = typename remove_cv<_Tp>::type>
3577 struct __ptrtr_not_void
3582 template<
typename _Tp>
3583 struct __ptrtr_not_void<_Tp, void>
3588 template<
typename _Ptr>
3589 class __ptrtr_pointer_to
3591 typedef typename __ptrtr_elt_type<_Ptr>::__type __orig_type;
3592 typedef typename __ptrtr_not_void<__orig_type>::__type __element_type;
3595 static _Ptr pointer_to(__element_type& __e)
3596 {
return _Ptr::pointer_to(__e); }
3603 template<
typename _Ptr>
3604 struct pointer_traits : __ptrtr_pointer_to<_Ptr>
3607 typedef _Ptr pointer;
3609 typedef typename __ptrtr_elt_type<_Ptr>::__type element_type;
3611 typedef typename __ptrtr_diff_type<_Ptr>::__type difference_type;
3613 template<
typename _Up>
3614 using rebind =
typename __ptrtr_rebind<_Ptr, _Up>::__type;
3621 template<
typename _Tp>
3622 struct pointer_traits<_Tp*>
3625 typedef _Tp* pointer;
3627 typedef _Tp element_type;
3629 typedef ptrdiff_t difference_type;
3631 template<
typename _Up>
3632 using rebind = _Up*;
3640 pointer_to(
typename __ptrtr_not_void<element_type>::__type& __r) noexcept
3641 {
return std::addressof(__r); }
3646 # 67 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 2 3
3648 namespace std __attribute__ ((__visibility__ ("default")))
3650 # 96 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3651 template<
typename _Iterator>
3652 class reverse_iterator
3653 :
public iterator<typename iterator_traits<_Iterator>::iterator_category,
3654 typename iterator_traits<_Iterator>::value_type,
3655 typename iterator_traits<_Iterator>::difference_type,
3656 typename iterator_traits<_Iterator>::pointer,
3657 typename iterator_traits<_Iterator>::reference>
3662 typedef iterator_traits<_Iterator> __traits_type;
3665 typedef _Iterator iterator_type;
3666 typedef typename __traits_type::difference_type difference_type;
3667 typedef typename __traits_type::pointer pointer;
3668 typedef typename __traits_type::reference reference;
3676 reverse_iterator() : current() { }
3682 reverse_iterator(iterator_type __x) : current(__x) { }
3687 reverse_iterator(
const reverse_iterator& __x)
3688 : current(__x.current) { }
3694 template<
typename _Iter>
3695 reverse_iterator(
const reverse_iterator<_Iter>& __x)
3696 : current(__x.base()) { }
3704 # 160 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3708 _Iterator __tmp = current;
3719 {
return &(operator*()); }
3741 reverse_iterator __tmp = *
this;
3766 reverse_iterator __tmp = *
this;
3777 operator+(difference_type __n)
const
3778 {
return reverse_iterator(current - __n); }
3787 operator+=(difference_type __n)
3799 operator-(difference_type __n)
const
3800 {
return reverse_iterator(current + __n); }
3809 operator-=(difference_type __n)
3821 operator[](difference_type __n)
const
3822 {
return *(*
this + __n); }
3824 # 290 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3825 template<
typename _Iterator>
3827 operator==(
const reverse_iterator<_Iterator>& __x,
3828 const reverse_iterator<_Iterator>& __y)
3829 {
return __x.base() == __y.base(); }
3831 template<
typename _Iterator>
3833 operator<(const reverse_iterator<_Iterator>& __x,
3834 const reverse_iterator<_Iterator>& __y)
3835 {
return __y.base() < __x.base(); }
3837 template<
typename _Iterator>
3839 operator!=(
const reverse_iterator<_Iterator>& __x,
3840 const reverse_iterator<_Iterator>& __y)
3841 {
return !(__x == __y); }
3843 template<
typename _Iterator>
3845 operator>(
const reverse_iterator<_Iterator>& __x,
3846 const reverse_iterator<_Iterator>& __y)
3847 {
return __y < __x; }
3849 template<
typename _Iterator>
3851 operator<=(const reverse_iterator<_Iterator>& __x,
3852 const reverse_iterator<_Iterator>& __y)
3853 {
return !(__y < __x); }
3855 template<
typename _Iterator>
3857 operator>=(
const reverse_iterator<_Iterator>& __x,
3858 const reverse_iterator<_Iterator>& __y)
3859 {
return !(__x < __y); }
3861 template<
typename _Iterator>
3862 inline typename reverse_iterator<_Iterator>::difference_type
3863 operator-(
const reverse_iterator<_Iterator>& __x,
3864 const reverse_iterator<_Iterator>& __y)
3865 {
return __y.base() - __x.base(); }
3867 template<
typename _Iterator>
3868 inline reverse_iterator<_Iterator>
3869 operator+(
typename reverse_iterator<_Iterator>::difference_type __n,
3870 const reverse_iterator<_Iterator>& __x)
3871 {
return reverse_iterator<_Iterator>(__x.base() - __n); }
3875 template<
typename _IteratorL,
typename _IteratorR>
3877 operator==(
const reverse_iterator<_IteratorL>& __x,
3878 const reverse_iterator<_IteratorR>& __y)
3879 {
return __x.base() == __y.base(); }
3881 template<
typename _IteratorL,
typename _IteratorR>
3883 operator<(const reverse_iterator<_IteratorL>& __x,
3884 const reverse_iterator<_IteratorR>& __y)
3885 {
return __y.base() < __x.base(); }
3887 template<
typename _IteratorL,
typename _IteratorR>
3889 operator!=(
const reverse_iterator<_IteratorL>& __x,
3890 const reverse_iterator<_IteratorR>& __y)
3891 {
return !(__x == __y); }
3893 template<
typename _IteratorL,
typename _IteratorR>
3895 operator>(
const reverse_iterator<_IteratorL>& __x,
3896 const reverse_iterator<_IteratorR>& __y)
3897 {
return __y < __x; }
3899 template<
typename _IteratorL,
typename _IteratorR>
3901 operator<=(const reverse_iterator<_IteratorL>& __x,
3902 const reverse_iterator<_IteratorR>& __y)
3903 {
return !(__y < __x); }
3905 template<
typename _IteratorL,
typename _IteratorR>
3907 operator>=(
const reverse_iterator<_IteratorL>& __x,
3908 const reverse_iterator<_IteratorR>& __y)
3909 {
return !(__x < __y); }
3911 template<
typename _IteratorL,
typename _IteratorR>
3915 operator-(
const reverse_iterator<_IteratorL>& __x,
3916 const reverse_iterator<_IteratorR>& __y)
3917 -> decltype(__y.base() - __x.base())
3923 {
return __y.base() - __x.base(); }
3924 # 402 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3925 template<
typename _Container>
3926 class back_insert_iterator
3927 :
public iterator<output_iterator_tag, void, void, void, void>
3930 _Container* container;
3934 typedef _Container container_type;
3938 back_insert_iterator(_Container& __x) : container(&__x) { }
3939 # 436 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3940 back_insert_iterator&
3941 operator=(
const typename _Container::value_type& __value)
3943 container->push_back(__value);
3947 back_insert_iterator&
3948 operator=(
typename _Container::value_type&& __value)
3950 container->push_back(std::move(__value));
3956 back_insert_iterator&
3961 back_insert_iterator&
3966 back_insert_iterator
3970 # 478 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3971 template<
typename _Container>
3972 inline back_insert_iterator<_Container>
3973 back_inserter(_Container& __x)
3974 {
return back_insert_iterator<_Container>(__x); }
3975 # 493 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3976 template<
typename _Container>
3977 class front_insert_iterator
3978 :
public iterator<output_iterator_tag, void, void, void, void>
3981 _Container* container;
3985 typedef _Container container_type;
3988 explicit front_insert_iterator(_Container& __x) : container(&__x) { }
3989 # 526 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3990 front_insert_iterator&
3991 operator=(
const typename _Container::value_type& __value)
3993 container->push_front(__value);
3997 front_insert_iterator&
3998 operator=(
typename _Container::value_type&& __value)
4000 container->push_front(std::move(__value));
4006 front_insert_iterator&
4011 front_insert_iterator&
4016 front_insert_iterator
4020 # 568 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
4021 template<
typename _Container>
4022 inline front_insert_iterator<_Container>
4023 front_inserter(_Container& __x)
4024 {
return front_insert_iterator<_Container>(__x); }
4025 # 587 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
4026 template<
typename _Container>
4027 class insert_iterator
4028 :
public iterator<output_iterator_tag, void, void, void, void>
4031 _Container* container;
4032 typename _Container::iterator iter;
4036 typedef _Container container_type;
4042 insert_iterator(_Container& __x,
typename _Container::iterator __i)
4043 : container(&__x), iter(__i) {}
4044 # 638 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
4046 operator=(
const typename _Container::value_type& __value)
4048 iter = container->insert(iter, __value);
4054 operator=(
typename _Container::value_type&& __value)
4056 iter = container->insert(iter, std::move(__value));
4077 # 682 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
4078 template<
typename _Container,
typename _Iterator>
4079 inline insert_iterator<_Container>
4080 inserter(_Container& __x, _Iterator __i)
4082 return insert_iterator<_Container>(__x,
4083 typename _Container::iterator(__i));
4091 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
4093 # 706 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
4094 using std::iterator_traits;
4095 using std::iterator;
4096 template<
typename _Iterator,
typename _Container>
4097 class __normal_iterator
4100 _Iterator _M_current;
4102 typedef iterator_traits<_Iterator> __traits_type;
4105 typedef _Iterator iterator_type;
4106 typedef typename __traits_type::iterator_category iterator_category;
4107 typedef typename __traits_type::value_type value_type;
4108 typedef typename __traits_type::difference_type difference_type;
4109 typedef typename __traits_type::reference reference;
4110 typedef typename __traits_type::pointer pointer;
4112 constexpr __normal_iterator() noexcept
4113 : _M_current(_Iterator()) { }
4116 __normal_iterator(
const _Iterator& __i) noexcept
4117 : _M_current(__i) { }
4120 template<
typename _Iter>
4121 __normal_iterator(
const __normal_iterator<_Iter,
4122 typename __enable_if<
4123 (std::__are_same<_Iter, typename _Container::pointer>::__value),
4124 _Container>::__type>& __i) noexcept
4125 : _M_current(__i.base()) { }
4129 operator*() const noexcept
4130 {
return *_M_current; }
4133 operator->() const noexcept
4134 {
return _M_current; }
4137 operator++() noexcept
4144 operator++(
int) noexcept
4145 {
return __normal_iterator(_M_current++); }
4149 operator--() noexcept
4156 operator--(
int) noexcept
4157 {
return __normal_iterator(_M_current--); }
4161 operator[](difference_type __n)
const noexcept
4162 {
return _M_current[__n]; }
4165 operator+=(difference_type __n) noexcept
4166 { _M_current += __n;
return *
this; }
4169 operator+(difference_type __n)
const noexcept
4170 {
return __normal_iterator(_M_current + __n); }
4173 operator-=(difference_type __n) noexcept
4174 { _M_current -= __n;
return *
this; }
4177 operator-(difference_type __n)
const noexcept
4178 {
return __normal_iterator(_M_current - __n); }
4181 base() const noexcept
4182 {
return _M_current; }
4184 # 806 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
4185 template<
typename _IteratorL,
typename _IteratorR,
typename _Container>
4187 operator==(
const __normal_iterator<_IteratorL, _Container>& __lhs,
4188 const __normal_iterator<_IteratorR, _Container>& __rhs)
4190 {
return __lhs.base() == __rhs.base(); }
4192 template<
typename _Iterator,
typename _Container>
4194 operator==(
const __normal_iterator<_Iterator, _Container>& __lhs,
4195 const __normal_iterator<_Iterator, _Container>& __rhs)
4197 {
return __lhs.base() == __rhs.base(); }
4199 template<
typename _IteratorL,
typename _IteratorR,
typename _Container>
4201 operator!=(
const __normal_iterator<_IteratorL, _Container>& __lhs,
4202 const __normal_iterator<_IteratorR, _Container>& __rhs)
4204 {
return __lhs.base() != __rhs.base(); }
4206 template<
typename _Iterator,
typename _Container>
4208 operator!=(
const __normal_iterator<_Iterator, _Container>& __lhs,
4209 const __normal_iterator<_Iterator, _Container>& __rhs)
4211 {
return __lhs.base() != __rhs.base(); }
4214 template<
typename _IteratorL,
typename _IteratorR,
typename _Container>
4216 operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
4217 const __normal_iterator<_IteratorR, _Container>& __rhs)
4219 {
return __lhs.base() < __rhs.base(); }
4221 template<
typename _Iterator,
typename _Container>
4223 operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
4224 const __normal_iterator<_Iterator, _Container>& __rhs)
4226 {
return __lhs.base() < __rhs.base(); }
4228 template<
typename _IteratorL,
typename _IteratorR,
typename _Container>
4230 operator>(
const __normal_iterator<_IteratorL, _Container>& __lhs,
4231 const __normal_iterator<_IteratorR, _Container>& __rhs)
4233 {
return __lhs.base() > __rhs.base(); }
4235 template<
typename _Iterator,
typename _Container>
4237 operator>(
const __normal_iterator<_Iterator, _Container>& __lhs,
4238 const __normal_iterator<_Iterator, _Container>& __rhs)
4240 {
return __lhs.base() > __rhs.base(); }
4242 template<
typename _IteratorL,
typename _IteratorR,
typename _Container>
4244 operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
4245 const __normal_iterator<_IteratorR, _Container>& __rhs)
4247 {
return __lhs.base() <= __rhs.base(); }
4249 template<
typename _Iterator,
typename _Container>
4251 operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
4252 const __normal_iterator<_Iterator, _Container>& __rhs)
4254 {
return __lhs.base() <= __rhs.base(); }
4256 template<
typename _IteratorL,
typename _IteratorR,
typename _Container>
4258 operator>=(
const __normal_iterator<_IteratorL, _Container>& __lhs,
4259 const __normal_iterator<_IteratorR, _Container>& __rhs)
4261 {
return __lhs.base() >= __rhs.base(); }
4263 template<
typename _Iterator,
typename _Container>
4265 operator>=(
const __normal_iterator<_Iterator, _Container>& __lhs,
4266 const __normal_iterator<_Iterator, _Container>& __rhs)
4268 {
return __lhs.base() >= __rhs.base(); }
4274 template<
typename _IteratorL,
typename _IteratorR,
typename _Container>
4278 operator-(
const __normal_iterator<_IteratorL, _Container>& __lhs,
4279 const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept
4280 -> decltype(__lhs.base() - __rhs.base())
4286 {
return __lhs.base() - __rhs.base(); }
4288 template<
typename _Iterator,
typename _Container>
4289 inline typename __normal_iterator<_Iterator, _Container>::difference_type
4290 operator-(
const __normal_iterator<_Iterator, _Container>& __lhs,
4291 const __normal_iterator<_Iterator, _Container>& __rhs)
4293 {
return __lhs.base() - __rhs.base(); }
4295 template<
typename _Iterator,
typename _Container>
4296 inline __normal_iterator<_Iterator, _Container>
4297 operator+(
typename __normal_iterator<_Iterator, _Container>::difference_type
4298 __n,
const __normal_iterator<_Iterator, _Container>& __i)
4300 {
return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
4307 namespace std __attribute__ ((__visibility__ ("default")))
4309 # 946 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
4310 template<
typename _Iterator>
4314 _Iterator _M_current;
4316 typedef iterator_traits<_Iterator> __traits_type;
4319 typedef _Iterator iterator_type;
4320 typedef typename __traits_type::iterator_category iterator_category;
4321 typedef typename __traits_type::value_type value_type;
4322 typedef typename __traits_type::difference_type difference_type;
4324 typedef _Iterator pointer;
4325 typedef value_type&& reference;
4331 move_iterator(iterator_type __i)
4332 : _M_current(__i) { }
4334 template<
typename _Iter>
4335 move_iterator(
const move_iterator<_Iter>& __i)
4336 : _M_current(__i.base()) { }
4340 {
return _M_current; }
4344 {
return std::move(*_M_current); }
4348 {
return _M_current; }
4360 move_iterator __tmp = *
this;
4375 move_iterator __tmp = *
this;
4381 operator+(difference_type __n)
const
4382 {
return move_iterator(_M_current + __n); }
4385 operator+=(difference_type __n)
4392 operator-(difference_type __n)
const
4393 {
return move_iterator(_M_current - __n); }
4396 operator-=(difference_type __n)
4403 operator[](difference_type __n)
const
4404 {
return std::move(_M_current[__n]); }
4410 template<
typename _IteratorL,
typename _IteratorR>
4412 operator==(
const move_iterator<_IteratorL>& __x,
4413 const move_iterator<_IteratorR>& __y)
4414 {
return __x.base() == __y.base(); }
4416 template<
typename _Iterator>
4418 operator==(
const move_iterator<_Iterator>& __x,
4419 const move_iterator<_Iterator>& __y)
4420 {
return __x.base() == __y.base(); }
4422 template<
typename _IteratorL,
typename _IteratorR>
4424 operator!=(
const move_iterator<_IteratorL>& __x,
4425 const move_iterator<_IteratorR>& __y)
4426 {
return !(__x == __y); }
4428 template<
typename _Iterator>
4430 operator!=(
const move_iterator<_Iterator>& __x,
4431 const move_iterator<_Iterator>& __y)
4432 {
return !(__x == __y); }
4434 template<
typename _IteratorL,
typename _IteratorR>
4436 operator<(const move_iterator<_IteratorL>& __x,
4437 const move_iterator<_IteratorR>& __y)
4438 {
return __x.base() < __y.base(); }
4440 template<
typename _Iterator>
4442 operator<(const move_iterator<_Iterator>& __x,
4443 const move_iterator<_Iterator>& __y)
4444 {
return __x.base() < __y.base(); }
4446 template<
typename _IteratorL,
typename _IteratorR>
4448 operator<=(const move_iterator<_IteratorL>& __x,
4449 const move_iterator<_IteratorR>& __y)
4450 {
return !(__y < __x); }
4452 template<
typename _Iterator>
4454 operator<=(const move_iterator<_Iterator>& __x,
4455 const move_iterator<_Iterator>& __y)
4456 {
return !(__y < __x); }
4458 template<
typename _IteratorL,
typename _IteratorR>
4460 operator>(
const move_iterator<_IteratorL>& __x,
4461 const move_iterator<_IteratorR>& __y)
4462 {
return __y < __x; }
4464 template<
typename _Iterator>
4466 operator>(
const move_iterator<_Iterator>& __x,
4467 const move_iterator<_Iterator>& __y)
4468 {
return __y < __x; }
4470 template<
typename _IteratorL,
typename _IteratorR>
4472 operator>=(
const move_iterator<_IteratorL>& __x,
4473 const move_iterator<_IteratorR>& __y)
4474 {
return !(__x < __y); }
4476 template<
typename _Iterator>
4478 operator>=(
const move_iterator<_Iterator>& __x,
4479 const move_iterator<_Iterator>& __y)
4480 {
return !(__x < __y); }
4483 template<
typename _IteratorL,
typename _IteratorR>
4485 operator-(
const move_iterator<_IteratorL>& __x,
4486 const move_iterator<_IteratorR>& __y)
4487 -> decltype(__x.base() - __y.base())
4488 {
return __x.base() - __y.base(); }
4490 template<
typename _Iterator>
4492 operator-(
const move_iterator<_Iterator>& __x,
4493 const move_iterator<_Iterator>& __y)
4494 -> decltype(__x.base() - __y.base())
4495 {
return __x.base() - __y.base(); }
4497 template<
typename _Iterator>
4498 inline move_iterator<_Iterator>
4499 operator+(
typename move_iterator<_Iterator>::difference_type __n,
4500 const move_iterator<_Iterator>& __x)
4501 {
return __x + __n; }
4503 template<
typename _Iterator>
4504 inline move_iterator<_Iterator>
4505 make_move_iterator(_Iterator __i)
4506 {
return move_iterator<_Iterator>(__i); }
4508 template<
typename _Iterator,
typename _ReturnType
4509 =
typename conditional<__move_if_noexcept_cond
4510 <
typename iterator_traits<_Iterator>::value_type>::value,
4511 _Iterator, move_iterator<_Iterator>>::type>
4513 __make_move_if_noexcept_iterator(_Iterator __i)
4514 {
return _ReturnType(__i); }
4520 # 68 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
4524 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/predefined_ops.h" 1 3
4525 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/predefined_ops.h" 3
4530 struct _Iter_less_iter
4532 template<
typename _Iterator1,
typename _Iterator2>
4534 operator()(_Iterator1 __it1, _Iterator2 __it2)
const
4535 {
return *__it1 < *__it2; }
4538 inline _Iter_less_iter
4540 {
return _Iter_less_iter(); }
4542 struct _Iter_less_val
4544 template<
typename _Iterator,
typename _Value>
4546 operator()(_Iterator __it, _Value& __val)
const
4547 {
return *__it < __val; }
4550 inline _Iter_less_val
4552 {
return _Iter_less_val(); }
4554 inline _Iter_less_val
4555 __iter_comp_val(_Iter_less_iter)
4556 {
return _Iter_less_val(); }
4558 struct _Val_less_iter
4560 template<
typename _Value,
typename _Iterator>
4562 operator()(_Value& __val, _Iterator __it)
const
4563 {
return __val < *__it; }
4566 inline _Val_less_iter
4568 {
return _Val_less_iter(); }
4570 inline _Val_less_iter
4571 __val_comp_iter(_Iter_less_iter)
4572 {
return _Val_less_iter(); }
4574 struct _Iter_equal_to_iter
4576 template<
typename _Iterator1,
typename _Iterator2>
4578 operator()(_Iterator1 __it1, _Iterator2 __it2)
const
4579 {
return *__it1 == *__it2; }
4582 inline _Iter_equal_to_iter
4583 __iter_equal_to_iter()
4584 {
return _Iter_equal_to_iter(); }
4586 struct _Iter_equal_to_val
4588 template<
typename _Iterator,
typename _Value>
4590 operator()(_Iterator __it, _Value& __val)
const
4591 {
return *__it == __val; }
4594 inline _Iter_equal_to_val
4595 __iter_equal_to_val()
4596 {
return _Iter_equal_to_val(); }
4598 inline _Iter_equal_to_val
4599 __iter_comp_val(_Iter_equal_to_iter)
4600 {
return _Iter_equal_to_val(); }
4602 template<
typename _Compare>
4603 struct _Iter_comp_iter
4607 _Iter_comp_iter(_Compare __comp)
4611 template<
typename _Iterator1,
typename _Iterator2>
4613 operator()(_Iterator1 __it1, _Iterator2 __it2)
4614 {
return bool(_M_comp(*__it1, *__it2)); }
4617 template<
typename _Compare>
4618 inline _Iter_comp_iter<_Compare>
4619 __iter_comp_iter(_Compare __comp)
4620 {
return _Iter_comp_iter<_Compare>(__comp); }
4622 template<
typename _Compare>
4623 struct _Iter_comp_val
4627 _Iter_comp_val(_Compare __comp)
4631 template<
typename _Iterator,
typename _Value>
4633 operator()(_Iterator __it, _Value& __val)
4634 {
return bool(_M_comp(*__it, __val)); }
4637 template<
typename _Compare>
4638 inline _Iter_comp_val<_Compare>
4639 __iter_comp_val(_Compare __comp)
4640 {
return _Iter_comp_val<_Compare>(__comp); }
4642 template<
typename _Compare>
4643 inline _Iter_comp_val<_Compare>
4644 __iter_comp_val(_Iter_comp_iter<_Compare> __comp)
4645 {
return _Iter_comp_val<_Compare>(__comp._M_comp); }
4647 template<
typename _Compare>
4648 struct _Val_comp_iter
4652 _Val_comp_iter(_Compare __comp)
4656 template<
typename _Value,
typename _Iterator>
4658 operator()(_Value& __val, _Iterator __it)
4659 {
return bool(_M_comp(__val, *__it)); }
4662 template<
typename _Compare>
4663 inline _Val_comp_iter<_Compare>
4664 __val_comp_iter(_Compare __comp)
4665 {
return _Val_comp_iter<_Compare>(__comp); }
4667 template<
typename _Compare>
4668 inline _Val_comp_iter<_Compare>
4669 __val_comp_iter(_Iter_comp_iter<_Compare> __comp)
4670 {
return _Val_comp_iter<_Compare>(__comp._M_comp); }
4672 template<
typename _Value>
4673 struct _Iter_equals_val
4677 _Iter_equals_val(_Value& __value)
4681 template<
typename _Iterator>
4683 operator()(_Iterator __it)
4684 {
return *__it == _M_value; }
4687 template<
typename _Value>
4688 inline _Iter_equals_val<_Value>
4689 __iter_equals_val(_Value& __val)
4690 {
return _Iter_equals_val<_Value>(__val); }
4692 template<
typename _Iterator1>
4693 struct _Iter_equals_iter
4695 typename std::iterator_traits<_Iterator1>::reference _M_ref;
4697 _Iter_equals_iter(_Iterator1 __it1)
4701 template<
typename _Iterator2>
4703 operator()(_Iterator2 __it2)
4704 {
return *__it2 == _M_ref; }
4707 template<
typename _Iterator>
4708 inline _Iter_equals_iter<_Iterator>
4709 __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it)
4710 {
return _Iter_equals_iter<_Iterator>(__it); }
4712 template<
typename _Predicate>
4717 _Iter_pred(_Predicate __pred)
4721 template<
typename _Iterator>
4723 operator()(_Iterator __it)
4724 {
return bool(_M_pred(*__it)); }
4727 template<
typename _Predicate>
4728 inline _Iter_pred<_Predicate>
4729 __pred_iter(_Predicate __pred)
4730 {
return _Iter_pred<_Predicate>(__pred); }
4732 template<
typename _Compare,
typename _Value>
4733 struct _Iter_comp_to_val
4738 _Iter_comp_to_val(_Compare __comp, _Value& __value)
4739 : _M_comp(__comp), _M_value(__value)
4742 template<
typename _Iterator>
4744 operator()(_Iterator __it)
4745 {
return bool(_M_comp(*__it, _M_value)); }
4748 template<
typename _Compare,
typename _Value>
4749 _Iter_comp_to_val<_Compare, _Value>
4750 __iter_comp_val(_Compare __comp, _Value &__val)
4751 {
return _Iter_comp_to_val<_Compare, _Value>(__comp, __val); }
4753 template<
typename _Compare,
typename _Iterator1>
4754 struct _Iter_comp_to_iter
4757 typename std::iterator_traits<_Iterator1>::reference _M_ref;
4759 _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1)
4760 : _M_comp(__comp), _M_ref(*__it1)
4763 template<
typename _Iterator2>
4765 operator()(_Iterator2 __it2)
4766 {
return bool(_M_comp(*__it2, _M_ref)); }
4769 template<
typename _Compare,
typename _Iterator>
4770 inline _Iter_comp_to_iter<_Compare, _Iterator>
4771 __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it)
4772 {
return _Iter_comp_to_iter<_Compare, _Iterator>(__comp._M_comp, __it); }
4774 template<
typename _Predicate>
4779 _Iter_negate(_Predicate __pred)
4783 template<
typename _Iterator>
4785 operator()(_Iterator __it)
4786 {
return !bool(_M_pred(*__it)); }
4789 template<
typename _Predicate>
4790 inline _Iter_negate<_Predicate>
4791 __negate(_Iter_pred<_Predicate> __pred)
4792 {
return _Iter_negate<_Predicate>(__pred._M_pred); }
4796 # 72 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
4798 namespace std __attribute__ ((__visibility__ ("default")))
4800 # 118 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
4801 template<
typename _ForwardIterator1,
typename _ForwardIterator2>
4803 iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
4805 # 148 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
4809 # 164 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
4810 template<
typename _ForwardIterator1,
typename _ForwardIterator2>
4812 swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
4813 _ForwardIterator2 __first2)
4822 for (; __first1 != __last1; ++__first1, ++__first2)
4823 std::iter_swap(__first1, __first2);
4826 # 192 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
4827 template<
typename _Tp>
4829 min(
const _Tp& __a,
const _Tp& __b)
4838 # 215 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
4839 template<
typename _Tp>
4841 max(
const _Tp& __a,
const _Tp& __b)
4850 # 238 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
4851 template<
typename _Tp,
typename _Compare>
4853 min(
const _Tp& __a,
const _Tp& __b, _Compare __comp)
4856 if (__comp(__b, __a))
4860 # 259 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
4861 template<
typename _Tp,
typename _Compare>
4863 max(
const _Tp& __a,
const _Tp& __b, _Compare __comp)
4866 if (__comp(__a, __b))
4873 template<
typename _Iterator>
4875 : _Iter_base<_Iterator, __is_normal_iterator<_Iterator>::__value>
4878 template<
typename _Iterator>
4879 inline typename _Niter_base<_Iterator>::iterator_type
4880 __niter_base(_Iterator __it)
4881 {
return std::_Niter_base<_Iterator>::_S_base(__it); }
4884 template<
typename _Iterator>
4886 : _Iter_base<_Iterator, __is_move_iterator<_Iterator>::__value>
4889 template<
typename _Iterator>
4890 inline typename _Miter_base<_Iterator>::iterator_type
4891 __miter_base(_Iterator __it)
4892 {
return std::_Miter_base<_Iterator>::_S_base(__it); }
4900 template<
bool,
bool,
typename>
4903 template<
typename _II,
typename _OI>
4905 __copy_m(_II __first, _II __last, _OI __result)
4907 for (; __first != __last; ++__result, ++__first)
4908 *__result = *__first;
4914 template<
typename _Category>
4915 struct __copy_move<true, false, _Category>
4917 template<
typename _II,
typename _OI>
4919 __copy_m(_II __first, _II __last, _OI __result)
4921 for (; __first != __last; ++__result, ++__first)
4922 *__result = std::move(*__first);
4929 struct __copy_move<false, false, random_access_iterator_tag>
4931 template<
typename _II,
typename _OI>
4933 __copy_m(_II __first, _II __last, _OI __result)
4935 typedef typename iterator_traits<_II>::difference_type _Distance;
4936 for(_Distance __n = __last - __first; __n > 0; --__n)
4938 *__result = *__first;
4948 struct __copy_move<true, false, random_access_iterator_tag>
4950 template<
typename _II,
typename _OI>
4952 __copy_m(_II __first, _II __last, _OI __result)
4954 typedef typename iterator_traits<_II>::difference_type _Distance;
4955 for(_Distance __n = __last - __first; __n > 0; --__n)
4957 *__result = std::move(*__first);
4966 template<
bool _IsMove>
4967 struct __copy_move<_IsMove, true, random_access_iterator_tag>
4969 template<
typename _Tp>
4971 __copy_m(
const _Tp* __first,
const _Tp* __last, _Tp* __result)
4975 static_assert( is_copy_assignable<_Tp>::value,
4976 "type is not assignable" );
4978 const ptrdiff_t _Num = __last - __first;
4980 __builtin_memmove(__result, __first,
sizeof(_Tp) * _Num);
4981 return __result + _Num;
4985 template<
bool _IsMove,
typename _II,
typename _OI>
4987 __copy_move_a(_II __first, _II __last, _OI __result)
4989 typedef typename iterator_traits<_II>::value_type _ValueTypeI;
4990 typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
4991 typedef typename iterator_traits<_II>::iterator_category _Category;
4992 const bool __simple = (__is_trivial(_ValueTypeI)
4993 && __is_pointer<_II>::__value
4994 && __is_pointer<_OI>::__value
4995 && __are_same<_ValueTypeI, _ValueTypeO>::__value);
4997 return std::__copy_move<_IsMove, __simple,
4998 _Category>::__copy_m(__first, __last, __result);
5003 template<
typename _CharT>
5006 template<
typename _CharT,
typename _Traits>
5007 class istreambuf_iterator;
5009 template<
typename _CharT,
typename _Traits>
5010 class ostreambuf_iterator;
5012 template<
bool _IsMove,
typename _CharT>
5013 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
5014 ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
5015 __copy_move_a2(_CharT*, _CharT*,
5016 ostreambuf_iterator<_CharT, char_traits<_CharT> >);
5018 template<
bool _IsMove,
typename _CharT>
5019 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
5020 ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
5021 __copy_move_a2(
const _CharT*,
const _CharT*,
5022 ostreambuf_iterator<_CharT, char_traits<_CharT> >);
5024 template<
bool _IsMove,
typename _CharT>
5025 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
5027 __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >,
5028 istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*);
5030 template<
bool _IsMove,
typename _II,
typename _OI>
5032 __copy_move_a2(_II __first, _II __last, _OI __result)
5034 return _OI(std::__copy_move_a<_IsMove>(std::__niter_base(__first),
5035 std::__niter_base(__last),
5036 std::__niter_base(__result)));
5038 # 454 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5039 template<
typename _II,
typename _OI>
5041 copy(_II __first, _II __last, _OI __result)
5049 return (std::__copy_move_a2<__is_move_iterator<_II>::__value>
5050 (std::__miter_base(__first), std::__miter_base(__last),
5053 # 487 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5054 template<
typename _II,
typename _OI>
5056 move(_II __first, _II __last, _OI __result)
5064 return std::__copy_move_a2<true>(std::__miter_base(__first),
5065 std::__miter_base(__last), __result);
5073 template<
bool,
bool,
typename>
5074 struct __copy_move_backward
5076 template<
typename _BI1,
typename _BI2>
5078 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
5080 while (__first != __last)
5081 *--__result = *--__last;
5087 template<
typename _Category>
5088 struct __copy_move_backward<true, false, _Category>
5090 template<
typename _BI1,
typename _BI2>
5092 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
5094 while (__first != __last)
5095 *--__result = std::move(*--__last);
5102 struct __copy_move_backward<false, false, random_access_iterator_tag>
5104 template<
typename _BI1,
typename _BI2>
5106 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
5108 typename iterator_traits<_BI1>::difference_type __n;
5109 for (__n = __last - __first; __n > 0; --__n)
5110 *--__result = *--__last;
5117 struct __copy_move_backward<true, false, random_access_iterator_tag>
5119 template<
typename _BI1,
typename _BI2>
5121 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
5123 typename iterator_traits<_BI1>::difference_type __n;
5124 for (__n = __last - __first; __n > 0; --__n)
5125 *--__result = std::move(*--__last);
5131 template<
bool _IsMove>
5132 struct __copy_move_backward<_IsMove, true, random_access_iterator_tag>
5134 template<
typename _Tp>
5136 __copy_move_b(
const _Tp* __first,
const _Tp* __last, _Tp* __result)
5140 static_assert( is_copy_assignable<_Tp>::value,
5141 "type is not assignable" );
5143 const ptrdiff_t _Num = __last - __first;
5145 __builtin_memmove(__result - _Num, __first,
sizeof(_Tp) * _Num);
5146 return __result - _Num;
5150 template<
bool _IsMove,
typename _BI1,
typename _BI2>
5152 __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result)
5154 typedef typename iterator_traits<_BI1>::value_type _ValueType1;
5155 typedef typename iterator_traits<_BI2>::value_type _ValueType2;
5156 typedef typename iterator_traits<_BI1>::iterator_category _Category;
5157 const bool __simple = (__is_trivial(_ValueType1)
5158 && __is_pointer<_BI1>::__value
5159 && __is_pointer<_BI2>::__value
5160 && __are_same<_ValueType1, _ValueType2>::__value);
5162 return std::__copy_move_backward<_IsMove, __simple,
5163 _Category>::__copy_move_b(__first,
5168 template<
bool _IsMove,
typename _BI1,
typename _BI2>
5170 __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result)
5172 return _BI2(std::__copy_move_backward_a<_IsMove>
5173 (std::__niter_base(__first), std::__niter_base(__last),
5174 std::__niter_base(__result)));
5176 # 628 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5177 template<
typename _BI1,
typename _BI2>
5179 copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
5189 return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value>
5190 (std::__miter_base(__first), std::__miter_base(__last),
5193 # 664 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5194 template<
typename _BI1,
typename _BI2>
5196 move_backward(_BI1 __first, _BI1 __last, _BI2 __result)
5206 return std::__copy_move_backward_a2<true>(std::__miter_base(__first),
5207 std::__miter_base(__last),
5216 template<
typename _ForwardIterator,
typename _Tp>
5218 __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value,
void>::__type
5219 __fill_a(_ForwardIterator __first, _ForwardIterator __last,
5222 for (; __first != __last; ++__first)
5226 template<
typename _ForwardIterator,
typename _Tp>
5228 __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value,
void>::__type
5229 __fill_a(_ForwardIterator __first, _ForwardIterator __last,
5232 const _Tp __tmp = __value;
5233 for (; __first != __last; ++__first)
5238 template<
typename _Tp>
5240 __gnu_cxx::__enable_if<__is_byte<_Tp>::__value,
void>::__type
5241 __fill_a(_Tp* __first, _Tp* __last,
const _Tp& __c)
5243 const _Tp __tmp = __c;
5244 __builtin_memset(__first, static_cast<unsigned char>(__tmp),
5247 # 730 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5248 template<
typename _ForwardIterator,
typename _Tp>
5250 fill(_ForwardIterator __first, _ForwardIterator __last,
const _Tp& __value)
5257 std::__fill_a(std::__niter_base(__first), std::__niter_base(__last),
5261 template<
typename _OutputIterator,
typename _Size,
typename _Tp>
5263 __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, _OutputIterator>::__type
5264 __fill_n_a(_OutputIterator __first, _Size __n,
const _Tp& __value)
5266 for (__decltype(__n + 0) __niter = __n;
5267 __niter > 0; --__niter, ++__first)
5272 template<
typename _OutputIterator,
typename _Size,
typename _Tp>
5274 __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type
5275 __fill_n_a(_OutputIterator __first, _Size __n,
const _Tp& __value)
5277 const _Tp __tmp = __value;
5278 for (__decltype(__n + 0) __niter = __n;
5279 __niter > 0; --__niter, ++__first)
5284 template<
typename _Size,
typename _Tp>
5286 __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type
5287 __fill_n_a(_Tp* __first, _Size __n,
const _Tp& __c)
5289 std::__fill_a(__first, __first + __n, __c);
5290 return __first + __n;
5292 # 790 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5293 template<
typename _OI,
typename _Size,
typename _Tp>
5295 fill_n(_OI __first, _Size __n,
const _Tp& __value)
5300 return _OI(std::__fill_n_a(std::__niter_base(__first), __n, __value));
5303 template<
bool _BoolType>
5306 template<
typename _II1,
typename _II2>
5308 equal(_II1 __first1, _II1 __last1, _II2 __first2)
5310 for (; __first1 != __last1; ++__first1, ++__first2)
5311 if (!(*__first1 == *__first2))
5318 struct __equal<true>
5320 template<
typename _Tp>
5322 equal(
const _Tp* __first1,
const _Tp* __last1,
const _Tp* __first2)
5324 return !__builtin_memcmp(__first1, __first2,
sizeof(_Tp)
5325 * (__last1 - __first1));
5329 template<
typename _II1,
typename _II2>
5331 __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2)
5333 typedef typename iterator_traits<_II1>::value_type _ValueType1;
5334 typedef typename iterator_traits<_II2>::value_type _ValueType2;
5335 const bool __simple = ((__is_integer<_ValueType1>::__value
5336 || __is_pointer<_ValueType1>::__value)
5337 && __is_pointer<_II1>::__value
5338 && __is_pointer<_II2>::__value
5339 && __are_same<_ValueType1, _ValueType2>::__value);
5341 return std::__equal<__simple>::equal(__first1, __last1, __first2);
5344 template<
typename,
typename>
5347 template<
typename _II1,
typename _II2>
5349 __newlast1(_II1, _II1 __last1, _II2, _II2)
5352 template<
typename _II>
5354 __cnd2(_II __first, _II __last)
5355 {
return __first != __last; }
5359 struct __lc_rai<random_access_iterator_tag, random_access_iterator_tag>
5361 template<
typename _RAI1,
typename _RAI2>
5363 __newlast1(_RAI1 __first1, _RAI1 __last1,
5364 _RAI2 __first2, _RAI2 __last2)
5366 const typename iterator_traits<_RAI1>::difference_type
5367 __diff1 = __last1 - __first1;
5368 const typename iterator_traits<_RAI2>::difference_type
5369 __diff2 = __last2 - __first2;
5370 return __diff2 < __diff1 ? __first1 + __diff2 : __last1;
5373 template<
typename _RAI>
5379 template<
typename _II1,
typename _II2,
typename _Compare>
5381 __lexicographical_compare_impl(_II1 __first1, _II1 __last1,
5382 _II2 __first2, _II2 __last2,
5385 typedef typename iterator_traits<_II1>::iterator_category _Category1;
5386 typedef typename iterator_traits<_II2>::iterator_category _Category2;
5387 typedef std::__lc_rai<_Category1, _Category2> __rai_type;
5389 __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2);
5390 for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2);
5391 ++__first1, ++__first2)
5393 if (__comp(__first1, __first2))
5395 if (__comp(__first2, __first1))
5398 return __first1 == __last1 && __first2 != __last2;
5401 template<
bool _BoolType>
5402 struct __lexicographical_compare
5404 template<
typename _II1,
typename _II2>
5405 static bool __lc(_II1, _II1, _II2, _II2);
5408 template<
bool _BoolType>
5409 template<
typename _II1,
typename _II2>
5411 __lexicographical_compare<_BoolType>::
5412 __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)
5414 return std::__lexicographical_compare_impl(__first1, __last1,
5416 __gnu_cxx::__ops::__iter_less_iter());
5420 struct __lexicographical_compare<true>
5422 template<
typename _Tp,
typename _Up>
5424 __lc(
const _Tp* __first1,
const _Tp* __last1,
5425 const _Up* __first2,
const _Up* __last2)
5427 const size_t __len1 = __last1 - __first1;
5428 const size_t __len2 = __last2 - __first2;
5429 const int __result = __builtin_memcmp(__first1, __first2,
5430 std::min(__len1, __len2));
5431 return __result != 0 ? __result < 0 : __len1 < __len2;
5435 template<
typename _II1,
typename _II2>
5437 __lexicographical_compare_aux(_II1 __first1, _II1 __last1,
5438 _II2 __first2, _II2 __last2)
5440 typedef typename iterator_traits<_II1>::value_type _ValueType1;
5441 typedef typename iterator_traits<_II2>::value_type _ValueType2;
5442 const bool __simple =
5443 (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value
5444 && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed
5445 && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed
5446 && __is_pointer<_II1>::__value
5447 && __is_pointer<_II2>::__value);
5449 return std::__lexicographical_compare<__simple>::__lc(__first1, __last1,
5453 template<
typename _ForwardIterator,
typename _Tp,
typename _Compare>
5455 __lower_bound(_ForwardIterator __first, _ForwardIterator __last,
5456 const _Tp& __val, _Compare __comp)
5458 typedef typename iterator_traits<_ForwardIterator>::difference_type
5461 _DistanceType __len = std::distance(__first, __last);
5465 _DistanceType __half = __len >> 1;
5466 _ForwardIterator __middle = __first;
5467 std::advance(__middle, __half);
5468 if (__comp(__middle, __val))
5472 __len = __len - __half - 1;
5479 # 988 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5480 template<
typename _ForwardIterator,
typename _Tp>
5481 inline _ForwardIterator
5482 lower_bound(_ForwardIterator __first, _ForwardIterator __last,
5491 return std::__lower_bound(__first, __last, __val,
5492 __gnu_cxx::__ops::__iter_less_val());
5497 inline constexpr
int
5499 {
return sizeof(int) * 8 - 1 - __builtin_clz(__n); }
5501 inline constexpr
unsigned
5503 {
return sizeof(int) * 8 - 1 - __builtin_clz(__n); }
5505 inline constexpr
long
5507 {
return sizeof(long) * 8 - 1 - __builtin_clzl(__n); }
5509 inline constexpr
unsigned long
5510 __lg(
unsigned long __n)
5511 {
return sizeof(long) * 8 - 1 - __builtin_clzl(__n); }
5513 inline constexpr
long long
5515 {
return sizeof(
long long) * 8 - 1 - __builtin_clzll(__n); }
5517 inline constexpr
unsigned long long
5518 __lg(
unsigned long long __n)
5519 {
return sizeof(
long long) * 8 - 1 - __builtin_clzll(__n); }
5520 # 1045 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5521 template<
typename _II1,
typename _II2>
5523 equal(_II1 __first1, _II1 __last1, _II2 __first2)
5533 return std::__equal_aux(std::__niter_base(__first1),
5534 std::__niter_base(__last1),
5535 std::__niter_base(__first2));
5537 # 1077 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5538 template<
typename _IIter1,
typename _IIter2,
typename _BinaryPredicate>
5540 equal(_IIter1 __first1, _IIter1 __last1,
5541 _IIter2 __first2, _BinaryPredicate __binary_pred)
5548 for (; __first1 != __last1; ++__first1, ++__first2)
5549 if (!
bool(__binary_pred(*__first1, *__first2)))
5553 # 1202 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5554 template<
typename _II1,
typename _II2>
5556 lexicographical_compare(_II1 __first1, _II1 __last1,
5557 _II2 __first2, _II2 __last2)
5559 # 1216 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5563 return std::__lexicographical_compare_aux(std::__niter_base(__first1),
5564 std::__niter_base(__last1),
5565 std::__niter_base(__first2),
5566 std::__niter_base(__last2));
5568 # 1238 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5569 template<
typename _II1,
typename _II2,
typename _Compare>
5571 lexicographical_compare(_II1 __first1, _II1 __last1,
5572 _II2 __first2, _II2 __last2, _Compare __comp)
5580 return std::__lexicographical_compare_impl
5581 (__first1, __last1, __first2, __last2,
5582 __gnu_cxx::__ops::__iter_comp_iter(__comp));
5585 template<
typename _InputIterator1,
typename _InputIterator2,
5586 typename _BinaryPredicate>
5587 pair<_InputIterator1, _InputIterator2>
5588 __mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
5589 _InputIterator2 __first2, _BinaryPredicate __binary_pred)
5591 while (__first1 != __last1 && __binary_pred(__first1, __first2))
5596 return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
5598 # 1281 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5599 template<
typename _InputIterator1,
typename _InputIterator2>
5600 inline pair<_InputIterator1, _InputIterator2>
5601 mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
5602 _InputIterator2 __first2)
5612 return std::__mismatch(__first1, __last1, __first2,
5613 __gnu_cxx::__ops::__iter_equal_to_iter());
5615 # 1314 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5616 template<
typename _InputIterator1,
typename _InputIterator2,
5617 typename _BinaryPredicate>
5618 inline pair<_InputIterator1, _InputIterator2>
5619 mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
5620 _InputIterator2 __first2, _BinaryPredicate __binary_pred)
5627 return std::__mismatch(__first1, __last1, __first2,
5628 __gnu_cxx::__ops::__iter_comp_iter(__binary_pred));
5630 # 1415 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5632 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 2 3
5633 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 1 3
5634 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 3
5636 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 1 3
5637 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 3
5642 # 1 "/usr/include/wchar.h" 1 3 4
5643 # 36 "/usr/include/wchar.h" 3 4
5644 # 1 "/usr/include/stdio.h" 1 3 4
5645 # 44 "/usr/include/stdio.h" 3 4
5651 # 64 "/usr/include/stdio.h" 3 4
5653 # 37 "/usr/include/wchar.h" 2 3 4
5656 # 1 "/usr/bin/../lib/clang/3.4.2/include/stdarg.h" 1 3 4
5657 # 30 "/usr/bin/../lib/clang/3.4.2/include/stdarg.h" 3 4
5658 typedef __builtin_va_list va_list;
5659 # 48 "/usr/bin/../lib/clang/3.4.2/include/stdarg.h" 3 4
5660 typedef __builtin_va_list __gnuc_va_list;
5661 # 40 "/usr/include/wchar.h" 2 3 4
5662 # 51 "/usr/include/wchar.h" 3 4
5663 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
5664 # 34 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 3 4
5665 typedef long int ptrdiff_t;
5673 typedef long unsigned int size_t;
5674 # 89 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 3 4
5676 long long __clang_max_align_nonce1
5677 __attribute__((__aligned__(__alignof__(
long long))));
5678 long double __clang_max_align_nonce2
5679 __attribute__((__aligned__(__alignof__(
long double))));
5681 # 113 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 3 4
5682 typedef unsigned int wint_t;
5683 # 52 "/usr/include/wchar.h" 2 3 4
5684 # 82 "/usr/include/wchar.h" 3 4
5698 # 106 "/usr/include/wchar.h" 3 4
5700 # 132 "/usr/include/wchar.h" 3 4
5707 # 147 "/usr/include/wchar.h" 3 4
5708 extern wchar_t *wcscpy (
wchar_t *__restrict __dest,
5709 const wchar_t *__restrict __src)
throw ();
5711 extern wchar_t *wcsncpy (
wchar_t *__restrict __dest,
5712 const wchar_t *__restrict __src,
size_t __n)
5716 extern wchar_t *wcscat (
wchar_t *__restrict __dest,
5717 const wchar_t *__restrict __src)
throw ();
5719 extern wchar_t *wcsncat (
wchar_t *__restrict __dest,
5720 const wchar_t *__restrict __src,
size_t __n)
5724 extern int wcscmp (
const wchar_t *__s1,
const wchar_t *__s2)
5725 throw () __attribute__ ((__pure__));
5727 extern int wcsncmp (
const wchar_t *__s1,
const wchar_t *__s2,
size_t __n)
5728 throw () __attribute__ ((__pure__));
5733 extern int wcscasecmp (
const wchar_t *__s1,
const wchar_t *__s2)
throw ();
5736 extern int wcsncasecmp (
const wchar_t *__s1,
const wchar_t *__s2,
5737 size_t __n)
throw ();
5742 # 1 "/usr/include/xlocale.h" 1 3 4
5743 # 27 "/usr/include/xlocale.h" 3 4
5747 struct __locale_data *__locales[13];
5750 const unsigned short int *__ctype_b;
5751 const int *__ctype_tolower;
5752 const int *__ctype_toupper;
5755 const char *__names[13];
5760 # 181 "/usr/include/wchar.h" 2 3 4
5762 extern int wcscasecmp_l (
const wchar_t *__s1,
const wchar_t *__s2,
5765 extern int wcsncasecmp_l (
const wchar_t *__s1,
const wchar_t *__s2,
5772 extern int wcscoll (
const wchar_t *__s1,
const wchar_t *__s2)
throw ();
5776 extern size_t wcsxfrm (
wchar_t *__restrict __s1,
5777 const wchar_t *__restrict __s2,
size_t __n)
throw ();
5778 # 206 "/usr/include/wchar.h" 3 4
5779 extern int wcscoll_l (
const wchar_t *__s1,
const wchar_t *__s2,
5785 extern size_t wcsxfrm_l (
wchar_t *__s1,
const wchar_t *__s2,
5789 extern wchar_t *wcsdup (
const wchar_t *__s)
throw () __attribute__ ((__malloc__));
5790 # 227 "/usr/include/wchar.h" 3 4
5791 extern wchar_t *wcschr (
const wchar_t *__wcs,
wchar_t __wc)
5792 throw () __attribute__ ((__pure__));
5793 # 237 "/usr/include/wchar.h" 3 4
5794 extern wchar_t *wcsrchr (
const wchar_t *__wcs,
wchar_t __wc)
5795 throw () __attribute__ ((__pure__));
5802 extern wchar_t *wcschrnul (
const wchar_t *__s,
wchar_t __wc)
5803 throw () __attribute__ ((__pure__));
5809 extern size_t wcscspn (
const wchar_t *__wcs,
const wchar_t *__reject)
5810 throw () __attribute__ ((__pure__));
5813 extern size_t wcsspn (
const wchar_t *__wcs,
const wchar_t *__accept)
5814 throw () __attribute__ ((__pure__));
5815 # 266 "/usr/include/wchar.h" 3 4
5816 extern wchar_t *wcspbrk (
const wchar_t *__wcs,
const wchar_t *__accept)
5817 throw () __attribute__ ((__pure__));
5818 # 277 "/usr/include/wchar.h" 3 4
5819 extern wchar_t *wcsstr (
const wchar_t *__haystack,
const wchar_t *__needle)
5820 throw () __attribute__ ((__pure__));
5824 extern wchar_t *wcstok (
wchar_t *__restrict __s,
5825 const wchar_t *__restrict __delim,
5826 wchar_t **__restrict __ptr)
throw ();
5829 extern size_t wcslen (
const wchar_t *__s)
throw () __attribute__ ((__pure__));
5830 # 299 "/usr/include/wchar.h" 3 4
5831 extern wchar_t *wcswcs (
const wchar_t *__haystack,
const wchar_t *__needle)
5832 throw () __attribute__ ((__pure__));
5838 extern size_t wcsnlen (
const wchar_t *__s,
size_t __maxlen)
5839 throw () __attribute__ ((__pure__));
5840 # 320 "/usr/include/wchar.h" 3 4
5841 extern wchar_t *wmemchr (
const wchar_t *__s,
wchar_t __c,
size_t __n)
5842 throw () __attribute__ ((__pure__));
5846 extern int wmemcmp (
const wchar_t *__s1,
const wchar_t *__s2,
size_t __n)
5847 throw () __attribute__ ((__pure__));
5850 extern wchar_t *wmemcpy (
wchar_t *__restrict __s1,
5851 const wchar_t *__restrict __s2,
size_t __n)
throw ();
5855 extern wchar_t *wmemmove (
wchar_t *__s1,
const wchar_t *__s2,
size_t __n)
5859 extern wchar_t *wmemset (
wchar_t *__s,
wchar_t __c,
size_t __n)
throw ();
5865 extern wchar_t *wmempcpy (
wchar_t *__restrict __s1,
5866 const wchar_t *__restrict __s2,
size_t __n)
5874 extern wint_t btowc (
int __c)
throw ();
5878 extern int wctob (wint_t __c)
throw ();
5882 extern int mbsinit (
const mbstate_t *__ps)
throw () __attribute__ ((__pure__));
5886 extern size_t mbrtowc (
wchar_t *__restrict __pwc,
5887 const char *__restrict __s,
size_t __n,
5891 extern size_t wcrtomb (
char *__restrict __s,
wchar_t __wc,
5895 extern size_t __mbrlen (
const char *__restrict __s,
size_t __n,
5897 extern size_t mbrlen (
const char *__restrict __s,
size_t __n,
5899 # 408 "/usr/include/wchar.h" 3 4
5900 extern size_t mbsrtowcs (
wchar_t *__restrict __dst,
5901 const char **__restrict __src,
size_t __len,
5906 extern size_t wcsrtombs (
char *__restrict __dst,
5907 const wchar_t **__restrict __src,
size_t __len,
5915 extern size_t mbsnrtowcs (
wchar_t *__restrict __dst,
5916 const char **__restrict __src,
size_t __nmc,
5917 size_t __len,
mbstate_t *__restrict __ps)
throw ();
5921 extern size_t wcsnrtombs (
char *__restrict __dst,
5922 const wchar_t **__restrict __src,
5923 size_t __nwc,
size_t __len,
5931 extern int wcwidth (
wchar_t __c)
throw ();
5935 extern int wcswidth (
const wchar_t *__s,
size_t __n)
throw ();
5942 extern double wcstod (
const wchar_t *__restrict __nptr,
5943 wchar_t **__restrict __endptr)
throw ();
5949 extern float wcstof (
const wchar_t *__restrict __nptr,
5950 wchar_t **__restrict __endptr)
throw ();
5951 extern long double wcstold (
const wchar_t *__restrict __nptr,
5952 wchar_t **__restrict __endptr)
throw ();
5960 extern long int wcstol (
const wchar_t *__restrict __nptr,
5961 wchar_t **__restrict __endptr,
int __base)
throw ();
5965 extern unsigned long int wcstoul (
const wchar_t *__restrict __nptr,
5966 wchar_t **__restrict __endptr,
int __base)
5975 extern long long int wcstoll (
const wchar_t *__restrict __nptr,
5976 wchar_t **__restrict __endptr,
int __base)
5982 extern unsigned long long int wcstoull (
const wchar_t *__restrict __nptr,
5983 wchar_t **__restrict __endptr,
5984 int __base)
throw ();
5992 extern long long int wcstoq (
const wchar_t *__restrict __nptr,
5993 wchar_t **__restrict __endptr,
int __base)
5999 extern unsigned long long int wcstouq (
const wchar_t *__restrict __nptr,
6000 wchar_t **__restrict __endptr,
6001 int __base)
throw ();
6002 # 530 "/usr/include/wchar.h" 3 4
6003 extern long int wcstol_l (
const wchar_t *__restrict __nptr,
6004 wchar_t **__restrict __endptr,
int __base,
6007 extern unsigned long int wcstoul_l (
const wchar_t *__restrict __nptr,
6008 wchar_t **__restrict __endptr,
6012 extern long long int wcstoll_l (
const wchar_t *__restrict __nptr,
6013 wchar_t **__restrict __endptr,
6017 extern unsigned long long int wcstoull_l (
const wchar_t *__restrict __nptr,
6018 wchar_t **__restrict __endptr,
6022 extern double wcstod_l (
const wchar_t *__restrict __nptr,
6023 wchar_t **__restrict __endptr,
__locale_t __loc)
6026 extern float wcstof_l (
const wchar_t *__restrict __nptr,
6027 wchar_t **__restrict __endptr,
__locale_t __loc)
6030 extern long double wcstold_l (
const wchar_t *__restrict __nptr,
6031 wchar_t **__restrict __endptr,
6039 extern wchar_t *wcpcpy (
wchar_t *__restrict __dest,
6040 const wchar_t *__restrict __src)
throw ();
6044 extern wchar_t *wcpncpy (
wchar_t *__restrict __dest,
6045 const wchar_t *__restrict __src,
size_t __n)
6053 extern __FILE *open_wmemstream (
wchar_t **__bufloc,
size_t *__sizeloc)
throw ();
6060 extern int fwide (
__FILE *__fp,
int __mode)
throw ();
6067 extern int fwprintf (
__FILE *__restrict __stream,
6068 const wchar_t *__restrict __format, ...)
6074 extern int wprintf (
const wchar_t *__restrict __format, ...)
6077 extern int swprintf (
wchar_t *__restrict __s,
size_t __n,
6078 const wchar_t *__restrict __format, ...)
6085 extern
int vfwprintf (
__FILE *__restrict __s,
6086 const
wchar_t *__restrict __format,
6087 __gnuc_va_list __arg)
6093 extern
int vwprintf (const
wchar_t *__restrict __format,
6094 __gnuc_va_list __arg)
6098 extern
int vswprintf (
wchar_t *__restrict __s,
size_t __n,
6099 const
wchar_t *__restrict __format,
6100 __gnuc_va_list __arg)
6108 extern
int fwscanf (
__FILE *__restrict __stream,
6109 const
wchar_t *__restrict __format, ...)
6115 extern
int wscanf (const
wchar_t *__restrict __format, ...)
6118 extern
int swscanf (const
wchar_t *__restrict __s,
6119 const
wchar_t *__restrict __format, ...)
6121 # 689 "/usr/include/wchar.h" 3 4
6122 extern int vfwscanf (
__FILE *__restrict __s,
6123 const wchar_t *__restrict __format,
6124 __gnuc_va_list __arg)
6130 extern int vwscanf (
const wchar_t *__restrict __format,
6131 __gnuc_va_list __arg)
6134 extern int vswscanf (
const wchar_t *__restrict __s,
6135 const wchar_t *__restrict __format,
6136 __gnuc_va_list __arg)
6138 # 745 "/usr/include/wchar.h" 3 4
6139 extern wint_t fgetwc (
__FILE *__stream);
6140 extern wint_t getwc (
__FILE *__stream);
6146 extern wint_t getwchar (
void);
6153 extern wint_t fputwc (
wchar_t __wc,
__FILE *__stream);
6154 extern wint_t putwc (
wchar_t __wc,
__FILE *__stream);
6160 extern wint_t putwchar (
wchar_t __wc);
6168 extern wchar_t *fgetws (
wchar_t *__restrict __ws,
int __n,
6169 __FILE *__restrict __stream);
6175 extern int fputws (
const wchar_t *__restrict __ws,
6176 __FILE *__restrict __stream);
6183 extern wint_t ungetwc (wint_t __wc,
__FILE *__stream);
6184 # 801 "/usr/include/wchar.h" 3 4
6185 extern wint_t getwc_unlocked (
__FILE *__stream);
6186 extern wint_t getwchar_unlocked (
void);
6194 extern wint_t fgetwc_unlocked (
__FILE *__stream);
6202 extern wint_t fputwc_unlocked (
wchar_t __wc,
__FILE *__stream);
6203 # 827 "/usr/include/wchar.h" 3 4
6204 extern wint_t putwc_unlocked (
wchar_t __wc,
__FILE *__stream);
6205 extern wint_t putwchar_unlocked (
wchar_t __wc);
6206 # 837 "/usr/include/wchar.h" 3 4
6207 extern wchar_t *fgetws_unlocked (
wchar_t *__restrict __ws,
int __n,
6208 __FILE *__restrict __stream);
6216 extern int fputws_unlocked (
const wchar_t *__restrict __ws,
6217 __FILE *__restrict __stream);
6225 extern size_t wcsftime (
wchar_t *__restrict __s,
size_t __maxsize,
6226 const wchar_t *__restrict __format,
6227 const struct tm *__restrict __tp)
throw ();
6235 extern size_t wcsftime_l (
wchar_t *__restrict __s,
size_t __maxsize,
6236 const wchar_t *__restrict __format,
6237 const struct tm *__restrict __tp,
6239 # 891 "/usr/include/wchar.h" 3 4
6241 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 2 3
6242 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 3
6247 # 135 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 3
6248 namespace std __attribute__ ((__visibility__ ("default")))
6325 wcschr(
wchar_t* __p,
wchar_t __c)
6326 {
return wcschr(const_cast<const wchar_t*>(__p), __c); }
6329 wcspbrk(
wchar_t* __s1,
const wchar_t* __s2)
6330 {
return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
6333 wcsrchr(
wchar_t* __p,
wchar_t __c)
6334 {
return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
6337 wcsstr(
wchar_t* __s1,
const wchar_t* __s2)
6338 {
return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
6341 wmemchr(
wchar_t* __p,
wchar_t __c,
size_t __n)
6342 {
return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
6362 # 257 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 3
6370 using ::__gnu_cxx::wcstold;
6371 using ::__gnu_cxx::wcstoll;
6372 using ::__gnu_cxx::wcstoull;
6374 # 277 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 3
6381 using std::vfwscanf;
6384 using std::vswscanf;
6393 using std::wcstoull;
6396 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 2 3
6397 # 68 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 3
6398 namespace std __attribute__ ((__visibility__ ("default")))
6400 # 88 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 3
6401 typedef long streamoff;
6402 # 98 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 3
6403 typedef ptrdiff_t streamsize;
6404 # 111 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 3
6405 template<
typename _StateT>
6418 : _M_off(0), _M_state() { }
6419 # 133 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 3
6420 fpos(streamoff __off)
6421 : _M_off(__off), _M_state() { }
6424 operator streamoff()
const {
return _M_off; }
6429 { _M_state = __st; }
6434 {
return _M_state; }
6441 operator+=(streamoff __off)
6452 operator-=(streamoff __off)
6465 operator+(streamoff __off)
const
6479 operator-(streamoff __off)
const
6492 operator-(
const fpos& __other)
const
6493 {
return _M_off - __other._M_off; }
6501 template<
typename _StateT>
6503 operator==(
const fpos<_StateT>& __lhs,
const fpos<_StateT>& __rhs)
6504 {
return streamoff(__lhs) == streamoff(__rhs); }
6506 template<
typename _StateT>
6508 operator!=(
const fpos<_StateT>& __lhs,
const fpos<_StateT>& __rhs)
6509 {
return streamoff(__lhs) != streamoff(__rhs); }
6515 typedef fpos<mbstate_t> streampos;
6517 typedef fpos<mbstate_t> wstreampos;
6521 typedef fpos<mbstate_t> u16streampos;
6523 typedef fpos<mbstate_t> u32streampos;
6528 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 2 3
6529 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 1 3
6530 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 3
6535 # 1 "/usr/include/wchar.h" 1 3 4
6536 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 2 3
6537 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 2 3
6539 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
6541 # 57 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 3
6542 template<
typename _CharT>
6545 typedef unsigned long int_type;
6546 typedef std::streampos pos_type;
6547 typedef std::streamoff off_type;
6548 typedef std::mbstate_t state_type;
6550 # 82 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 3
6551 template<
typename _CharT>
6554 typedef _CharT char_type;
6555 typedef typename _Char_types<_CharT>::int_type int_type;
6556 typedef typename _Char_types<_CharT>::pos_type pos_type;
6557 typedef typename _Char_types<_CharT>::off_type off_type;
6558 typedef typename _Char_types<_CharT>::state_type state_type;
6561 assign(char_type& __c1,
const char_type& __c2)
6564 static constexpr
bool
6565 eq(
const char_type& __c1,
const char_type& __c2)
6566 {
return __c1 == __c2; }
6568 static constexpr
bool
6569 lt(
const char_type& __c1,
const char_type& __c2)
6570 {
return __c1 < __c2; }
6573 compare(
const char_type* __s1,
const char_type* __s2, std::size_t __n);
6576 length(
const char_type* __s);
6578 static const char_type*
6579 find(
const char_type* __s, std::size_t __n,
const char_type& __a);
6582 move(char_type* __s1,
const char_type* __s2, std::size_t __n);
6585 copy(char_type* __s1,
const char_type* __s2, std::size_t __n);
6588 assign(char_type* __s, std::size_t __n, char_type __a);
6590 static constexpr char_type
6591 to_char_type(
const int_type& __c)
6592 {
return static_cast<char_type
>(__c); }
6594 static constexpr int_type
6595 to_int_type(
const char_type& __c)
6596 {
return static_cast<int_type
>(__c); }
6598 static constexpr
bool
6599 eq_int_type(
const int_type& __c1,
const int_type& __c2)
6600 {
return __c1 == __c2; }
6602 static constexpr int_type
6604 {
return static_cast<int_type
>(-1); }
6606 static constexpr int_type
6607 not_eof(
const int_type& __c)
6608 {
return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); }
6611 template<
typename _CharT>
6613 char_traits<_CharT>::
6614 compare(
const char_type* __s1,
const char_type* __s2, std::size_t __n)
6616 for (std::size_t __i = 0; __i < __n; ++__i)
6617 if (lt(__s1[__i], __s2[__i]))
6619 else if (lt(__s2[__i], __s1[__i]))
6624 template<
typename _CharT>
6626 char_traits<_CharT>::
6627 length(
const char_type* __p)
6629 std::size_t __i = 0;
6630 while (!eq(__p[__i], char_type()))
6635 template<
typename _CharT>
6636 const typename char_traits<_CharT>::char_type*
6637 char_traits<_CharT>::
6638 find(
const char_type* __s, std::size_t __n,
const char_type& __a)
6640 for (std::size_t __i = 0; __i < __n; ++__i)
6641 if (eq(__s[__i], __a))
6646 template<
typename _CharT>
6647 typename char_traits<_CharT>::char_type*
6648 char_traits<_CharT>::
6649 move(char_type* __s1,
const char_type* __s2, std::size_t __n)
6651 return static_cast<_CharT*
>(__builtin_memmove(__s1, __s2,
6652 __n *
sizeof(char_type)));
6655 template<
typename _CharT>
6656 typename char_traits<_CharT>::char_type*
6657 char_traits<_CharT>::
6658 copy(char_type* __s1,
const char_type* __s2, std::size_t __n)
6661 std::copy(__s2, __s2 + __n, __s1);
6665 template<
typename _CharT>
6666 typename char_traits<_CharT>::char_type*
6667 char_traits<_CharT>::
6668 assign(char_type* __s, std::size_t __n, char_type __a)
6671 std::fill_n(__s, __n, __a);
6678 namespace std __attribute__ ((__visibility__ ("default")))
6680 # 226 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 3
6681 template<
class _CharT>
6682 struct char_traits :
public __gnu_cxx::char_traits<_CharT>
6688 struct char_traits<char>
6690 typedef char char_type;
6691 typedef int int_type;
6692 typedef streampos pos_type;
6693 typedef streamoff off_type;
6697 assign(char_type& __c1,
const char_type& __c2) noexcept
6700 static constexpr
bool
6701 eq(
const char_type& __c1,
const char_type& __c2) noexcept
6702 {
return __c1 == __c2; }
6704 static constexpr
bool
6705 lt(
const char_type& __c1,
const char_type& __c2) noexcept
6708 return (static_cast<unsigned char>(__c1)
6709 < static_cast<unsigned char>(__c2));
6713 compare(
const char_type* __s1,
const char_type* __s2,
size_t __n)
6714 {
return __builtin_memcmp(__s1, __s2, __n); }
6717 length(
const char_type* __s)
6718 {
return __builtin_strlen(__s); }
6720 static const char_type*
6721 find(
const char_type* __s,
size_t __n,
const char_type& __a)
6722 {
return static_cast<const char_type*
>(__builtin_memchr(__s, __a, __n)); }
6725 move(char_type* __s1,
const char_type* __s2,
size_t __n)
6726 {
return static_cast<char_type*
>(__builtin_memmove(__s1, __s2, __n)); }
6729 copy(char_type* __s1,
const char_type* __s2,
size_t __n)
6730 {
return static_cast<char_type*
>(__builtin_memcpy(__s1, __s2, __n)); }
6733 assign(char_type* __s,
size_t __n, char_type __a)
6734 {
return static_cast<char_type*
>(__builtin_memset(__s, __a, __n)); }
6736 static constexpr char_type
6737 to_char_type(
const int_type& __c) noexcept
6738 {
return static_cast<char_type
>(__c); }
6742 static constexpr int_type
6743 to_int_type(
const char_type& __c) noexcept
6744 {
return static_cast<int_type
>(
static_cast<unsigned char>(__c)); }
6746 static constexpr
bool
6747 eq_int_type(
const int_type& __c1,
const int_type& __c2) noexcept
6748 {
return __c1 == __c2; }
6750 static constexpr int_type
6752 {
return static_cast<int_type
>(-1); }
6754 static constexpr int_type
6755 not_eof(
const int_type& __c) noexcept
6756 {
return (__c == eof()) ? 0 : __c; }
6763 struct char_traits<wchar_t>
6765 typedef wchar_t char_type;
6766 typedef wint_t int_type;
6767 typedef streamoff off_type;
6768 typedef wstreampos pos_type;
6772 assign(char_type& __c1,
const char_type& __c2) noexcept
6775 static constexpr
bool
6776 eq(
const char_type& __c1,
const char_type& __c2) noexcept
6777 {
return __c1 == __c2; }
6779 static constexpr
bool
6780 lt(
const char_type& __c1,
const char_type& __c2) noexcept
6781 {
return __c1 < __c2; }
6784 compare(
const char_type* __s1,
const char_type* __s2,
size_t __n)
6785 {
return wmemcmp(__s1, __s2, __n); }
6788 length(
const char_type* __s)
6789 {
return wcslen(__s); }
6791 static const char_type*
6792 find(
const char_type* __s,
size_t __n,
const char_type& __a)
6793 {
return wmemchr(__s, __a, __n); }
6796 move(char_type* __s1,
const char_type* __s2,
size_t __n)
6797 {
return wmemmove(__s1, __s2, __n); }
6800 copy(char_type* __s1,
const char_type* __s2,
size_t __n)
6801 {
return wmemcpy(__s1, __s2, __n); }
6804 assign(char_type* __s,
size_t __n, char_type __a)
6805 {
return wmemset(__s, __a, __n); }
6807 static constexpr char_type
6808 to_char_type(
const int_type& __c) noexcept
6809 {
return char_type(__c); }
6811 static constexpr int_type
6812 to_int_type(
const char_type& __c) noexcept
6813 {
return int_type(__c); }
6815 static constexpr
bool
6816 eq_int_type(
const int_type& __c1,
const int_type& __c2) noexcept
6817 {
return __c1 == __c2; }
6819 static constexpr int_type
6821 {
return static_cast<int_type
>((0xffffffff
u)); }
6823 static constexpr int_type
6824 not_eof(
const int_type& __c) noexcept
6825 {
return eq_int_type(__c, eof()) ? 0 : __c; }
6837 namespace std __attribute__ ((__visibility__ ("default")))
6842 struct char_traits<char16_t>
6844 typedef char16_t char_type;
6845 typedef uint_least16_t int_type;
6846 typedef streamoff off_type;
6847 typedef u16streampos pos_type;
6851 assign(char_type& __c1,
const char_type& __c2) noexcept
6854 static constexpr
bool
6855 eq(
const char_type& __c1,
const char_type& __c2) noexcept
6856 {
return __c1 == __c2; }
6858 static constexpr
bool
6859 lt(
const char_type& __c1,
const char_type& __c2) noexcept
6860 {
return __c1 < __c2; }
6863 compare(
const char_type* __s1,
const char_type* __s2,
size_t __n)
6865 for (
size_t __i = 0; __i < __n; ++__i)
6866 if (lt(__s1[__i], __s2[__i]))
6868 else if (lt(__s2[__i], __s1[__i]))
6874 length(
const char_type* __s)
6877 while (!eq(__s[__i], char_type()))
6882 static const char_type*
6883 find(
const char_type* __s,
size_t __n,
const char_type& __a)
6885 for (
size_t __i = 0; __i < __n; ++__i)
6886 if (eq(__s[__i], __a))
6892 move(char_type* __s1,
const char_type* __s2,
size_t __n)
6894 return (static_cast<char_type*>
6895 (__builtin_memmove(__s1, __s2, __n *
sizeof(char_type))));
6899 copy(char_type* __s1,
const char_type* __s2,
size_t __n)
6901 return (static_cast<char_type*>
6902 (__builtin_memcpy(__s1, __s2, __n *
sizeof(char_type))));
6906 assign(char_type* __s,
size_t __n, char_type __a)
6908 for (
size_t __i = 0; __i < __n; ++__i)
6909 assign(__s[__i], __a);
6913 static constexpr char_type
6914 to_char_type(
const int_type& __c) noexcept
6915 {
return char_type(__c); }
6917 static constexpr int_type
6918 to_int_type(
const char_type& __c) noexcept
6919 {
return int_type(__c); }
6921 static constexpr
bool
6922 eq_int_type(
const int_type& __c1,
const int_type& __c2) noexcept
6923 {
return __c1 == __c2; }
6925 static constexpr int_type
6927 {
return static_cast<int_type
>(-1); }
6929 static constexpr int_type
6930 not_eof(
const int_type& __c) noexcept
6931 {
return eq_int_type(__c, eof()) ? 0 : __c; }
6935 struct char_traits<char32_t>
6937 typedef char32_t char_type;
6938 typedef uint_least32_t int_type;
6939 typedef streamoff off_type;
6940 typedef u32streampos pos_type;
6944 assign(char_type& __c1,
const char_type& __c2) noexcept
6947 static constexpr
bool
6948 eq(
const char_type& __c1,
const char_type& __c2) noexcept
6949 {
return __c1 == __c2; }
6951 static constexpr
bool
6952 lt(
const char_type& __c1,
const char_type& __c2) noexcept
6953 {
return __c1 < __c2; }
6956 compare(
const char_type* __s1,
const char_type* __s2,
size_t __n)
6958 for (
size_t __i = 0; __i < __n; ++__i)
6959 if (lt(__s1[__i], __s2[__i]))
6961 else if (lt(__s2[__i], __s1[__i]))
6967 length(
const char_type* __s)
6970 while (!eq(__s[__i], char_type()))
6975 static const char_type*
6976 find(
const char_type* __s,
size_t __n,
const char_type& __a)
6978 for (
size_t __i = 0; __i < __n; ++__i)
6979 if (eq(__s[__i], __a))
6985 move(char_type* __s1,
const char_type* __s2,
size_t __n)
6987 return (static_cast<char_type*>
6988 (__builtin_memmove(__s1, __s2, __n *
sizeof(char_type))));
6992 copy(char_type* __s1,
const char_type* __s2,
size_t __n)
6994 return (static_cast<char_type*>
6995 (__builtin_memcpy(__s1, __s2, __n *
sizeof(char_type))));
6999 assign(char_type* __s,
size_t __n, char_type __a)
7001 for (
size_t __i = 0; __i < __n; ++__i)
7002 assign(__s[__i], __a);
7006 static constexpr char_type
7007 to_char_type(
const int_type& __c) noexcept
7008 {
return char_type(__c); }
7010 static constexpr int_type
7011 to_int_type(
const char_type& __c) noexcept
7012 {
return int_type(__c); }
7014 static constexpr
bool
7015 eq_int_type(
const int_type& __c1,
const int_type& __c2) noexcept
7016 {
return __c1 == __c2; }
7018 static constexpr int_type
7020 {
return static_cast<int_type
>(-1); }
7022 static constexpr int_type
7023 not_eof(
const int_type& __c) noexcept
7024 {
return eq_int_type(__c, eof()) ? 0 : __c; }
7029 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
7030 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/allocator.h" 1 3
7031 # 46 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/allocator.h" 3
7032 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++allocator.h" 1 3
7033 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++allocator.h" 3
7034 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/new_allocator.h" 1 3
7035 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/new_allocator.h" 3
7036 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/new" 1 3
7037 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/new" 3
7040 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 1 3
7041 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 3
7043 #pragma GCC visibility push(default)
7047 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/atomic_lockfree_defines.h" 1 3
7048 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/atomic_lockfree_defines.h" 3
7049 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 2 3
7055 # 60 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 3
7059 exception() noexcept { }
7060 virtual ~exception() noexcept;
7064 virtual const
char* what() const noexcept;
7069 class bad_exception : public exception
7072 bad_exception() noexcept { }
7076 virtual ~bad_exception() noexcept;
7079 virtual const
char* what() const noexcept;
7083 typedef
void (*terminate_handler) ();
7086 typedef
void (*unexpected_handler) ();
7089 terminate_handler set_terminate(terminate_handler) noexcept;
7093 terminate_handler get_terminate() noexcept;
7098 void terminate() noexcept __attribute__ ((__noreturn__));
7101 unexpected_handler set_unexpected(unexpected_handler) noexcept;
7105 unexpected_handler get_unexpected() noexcept;
7110 void unexpected() __attribute__ ((__noreturn__));
7111 # 127 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 3
7112 bool uncaught_exception() noexcept __attribute__ ((__pure__));
7119 # 152 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 3
7120 void __verbose_terminate_handler();
7127 #pragma GCC visibility pop
7131 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/exception_ptr.h" 1 3
7132 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/exception_ptr.h" 3
7133 #pragma GCC visibility push(default)
7152 namespace __exception_ptr
7154 class exception_ptr;
7157 using __exception_ptr::exception_ptr;
7163 exception_ptr current_exception() noexcept;
7166 void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__));
7168 namespace __exception_ptr
7176 void* _M_exception_object;
7178 explicit exception_ptr(
void* __e) noexcept;
7180 void _M_addref() noexcept;
7181 void _M_release() noexcept;
7183 void *_M_get() const noexcept __attribute__ ((__pure__));
7185 friend exception_ptr std::current_exception() noexcept;
7186 friend
void std::rethrow_exception(exception_ptr);
7189 exception_ptr() noexcept;
7191 exception_ptr(const exception_ptr&) noexcept;
7194 exception_ptr(nullptr_t) noexcept
7195 : _M_exception_object(0)
7198 exception_ptr(exception_ptr&& __o) noexcept
7199 : _M_exception_object(__o._M_exception_object)
7200 { __o._M_exception_object = 0; }
7201 # 111 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/exception_ptr.h" 3
7203 operator=(
const exception_ptr&) noexcept;
7207 operator=(exception_ptr&& __o) noexcept
7209 exception_ptr(static_cast<exception_ptr&&>(__o)).swap(*
this);
7214 ~exception_ptr() noexcept;
7217 swap(exception_ptr&) noexcept;
7218 # 138 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/exception_ptr.h" 3
7219 explicit operator bool()
const
7220 {
return _M_exception_object; }
7224 operator==(
const exception_ptr&,
const exception_ptr&)
7225 noexcept __attribute__ ((__pure__));
7227 const class std::type_info*
7228 __cxa_exception_type() const noexcept
7229 __attribute__ ((__pure__));
7233 operator==(const exception_ptr&, const exception_ptr&)
7234 noexcept __attribute__ ((__pure__));
7237 operator!=(const exception_ptr&, const exception_ptr&)
7238 noexcept __attribute__ ((__pure__));
7241 swap(exception_ptr& __lhs, exception_ptr& __rhs)
7242 { __lhs.swap(__rhs); }
7248 template<
typename _Ex>
7250 make_exception_ptr(_Ex __ex) noexcept
7260 return current_exception();
7268 template<
typename _Ex>
7270 copy_exception(_Ex __ex) noexcept __attribute__ ((__deprecated__));
7272 template<
typename _Ex>
7274 copy_exception(_Ex __ex) noexcept
7275 {
return std::make_exception_ptr<_Ex>(__ex); }
7282 #pragma GCC visibility pop
7283 # 163 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 2 3
7284 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/nested_exception.h" 1 3
7285 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/nested_exception.h" 3
7286 #pragma GCC visibility push(default)
7287 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/nested_exception.h" 3
7298 class nested_exception
7300 exception_ptr _M_ptr;
7303 nested_exception() noexcept : _M_ptr(current_exception()) { }
7305 nested_exception(
const nested_exception&) =
default;
7307 nested_exception& operator=(
const nested_exception&) =
default;
7309 virtual ~nested_exception() noexcept;
7312 rethrow_nested() const __attribute__ ((__noreturn__))
7313 { rethrow_exception(_M_ptr); }
7320 template<
typename _Except>
7321 struct _Nested_exception :
public _Except,
public nested_exception
7323 explicit _Nested_exception(_Except&& __ex)
7324 : _Except(static_cast<_Except&&>(__ex))
7328 template<
typename _Ex>
7329 struct __get_nested_helper
7331 static const nested_exception*
7332 _S_get(
const _Ex& __ex)
7333 {
return dynamic_cast<const nested_exception*
>(&__ex); }
7336 template<
typename _Ex>
7337 struct __get_nested_helper<_Ex*>
7339 static const nested_exception*
7340 _S_get(
const _Ex* __ex)
7341 {
return dynamic_cast<const nested_exception*
>(__ex); }
7344 template<
typename _Ex>
7345 inline const nested_exception*
7346 __get_nested_exception(
const _Ex& __ex)
7347 {
return __get_nested_helper<_Ex>::_S_get(__ex); }
7349 template<
typename _Ex>
7351 __throw_with_nested(_Ex&&,
const nested_exception* = 0)
7352 __attribute__ ((__noreturn__));
7354 template<typename _Ex>
7356 __throw_with_nested(_Ex&&, ...) __attribute__ ((__noreturn__));
7361 template<typename _Ex>
7363 __throw_with_nested(_Ex&& __ex, const nested_exception*)
7366 template<
typename _Ex>
7368 __throw_with_nested(_Ex&& __ex, ...)
7369 {
throw _Nested_exception<_Ex>(
static_cast<_Ex&&
>(__ex)); }
7371 template<
typename _Ex>
7373 throw_with_nested(_Ex __ex) __attribute__ ((__noreturn__));
7377 template<
typename _Ex>
7379 throw_with_nested(_Ex __ex)
7381 if (__get_nested_exception(__ex))
7383 __throw_with_nested(static_cast<_Ex&&>(__ex), &__ex);
7387 template<
typename _Ex>
7389 rethrow_if_nested(
const _Ex& __ex)
7391 if (
const nested_exception* __nested = __get_nested_exception(__ex))
7392 __nested->rethrow_nested();
7397 rethrow_if_nested(
const nested_exception& __ex)
7398 { __ex.rethrow_nested(); }
7407 #pragma GCC visibility pop
7408 # 164 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 2 3
7409 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/new" 2 3
7411 #pragma GCC visibility push(default)
7423 class bad_alloc :
public exception
7426 bad_alloc() throw() { }
7430 virtual ~bad_alloc() throw();
7433 virtual const
char* what() const throw();
7437 class bad_array_new_length : public bad_alloc
7440 bad_array_new_length() throw() { };
7444 virtual ~bad_array_new_length() throw();
7447 virtual const
char* what() const throw();
7449 # 99 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/new" 3
7450 struct nothrow_t { };
7452 extern const nothrow_t nothrow;
7456 typedef void (*new_handler)();
7460 new_handler set_new_handler(new_handler) throw();
7464 new_handler get_new_handler() noexcept;
7467 # 128 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/new" 3
7468 void*
operator new(std::size_t)
7469 __attribute__((__externally_visible__));
7470 void*
operator new[](std::size_t)
7471 __attribute__((__externally_visible__));
7472 void operator delete(
void*) noexcept
7473 __attribute__((__externally_visible__));
7474 void operator delete[](
void*) noexcept
7475 __attribute__((__externally_visible__));
7477 __attribute__((__externally_visible__));
7478 void*
operator new[](std::size_t,
const std::nothrow_t&) noexcept
7479 __attribute__((__externally_visible__));
7481 __attribute__((__externally_visible__));
7483 __attribute__((__externally_visible__));
7486 inline void*
operator new(std::size_t,
void* __p) noexcept
7488 inline void*
operator new[](std::size_t,
void* __p) noexcept
7492 inline void operator delete (
void*,
void*) noexcept { }
7493 inline void operator delete[](
void*,
void*) noexcept { }
7497 #pragma GCC visibility pop
7498 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/new_allocator.h" 2 3
7505 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
7510 using std::ptrdiff_t;
7511 # 57 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/new_allocator.h" 3
7512 template<
typename _Tp>
7516 typedef size_t size_type;
7517 typedef ptrdiff_t difference_type;
7518 typedef _Tp* pointer;
7519 typedef const _Tp* const_pointer;
7520 typedef _Tp& reference;
7521 typedef const _Tp& const_reference;
7522 typedef _Tp value_type;
7524 template<
typename _Tp1>
7526 {
typedef new_allocator<_Tp1> other; };
7531 typedef std::true_type propagate_on_container_move_assignment;
7534 new_allocator() noexcept { }
7536 new_allocator(
const new_allocator&) noexcept { }
7538 template<
typename _Tp1>
7539 new_allocator(
const new_allocator<_Tp1>&) noexcept { }
7541 ~new_allocator() noexcept { }
7544 address(reference __x)
const noexcept
7545 {
return std::__addressof(__x); }
7548 address(const_reference __x)
const noexcept
7549 {
return std::__addressof(__x); }
7554 allocate(size_type __n,
const void* = 0)
7556 if (__n > this->max_size())
7557 std::__throw_bad_alloc();
7559 return static_cast<_Tp*
>(::operator
new(__n *
sizeof(_Tp)));
7564 deallocate(pointer __p, size_type)
7565 { ::operator
delete(__p); }
7568 max_size() const noexcept
7569 {
return size_t(-1) /
sizeof(_Tp); }
7572 template<
typename _Up,
typename... _Args>
7574 construct(_Up* __p, _Args&&... __args)
7575 { ::new((
void *)__p) _Up(std::forward<_Args>(__args)...); }
7577 template<typename _Up>
7579 destroy(_Up* __p) { __p->~_Up(); }
7580 # 135 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/new_allocator.h" 3
7583 template<
typename _Tp>
7585 operator==(
const new_allocator<_Tp>&,
const new_allocator<_Tp>&)
7588 template<
typename _Tp>
7590 operator!=(
const new_allocator<_Tp>&,
const new_allocator<_Tp>&)
7595 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++allocator.h" 2 3
7600 # 47 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++allocator.h" 3
7601 template<
typename _Tp>
7602 using __allocator_base = __gnu_cxx::new_allocator<_Tp>;
7604 # 47 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/allocator.h" 2 3
7610 namespace std __attribute__ ((__visibility__ ("default")))
7612 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/allocator.h" 3
7614 class allocator<void>
7617 typedef size_t size_type;
7618 typedef ptrdiff_t difference_type;
7619 typedef void* pointer;
7620 typedef const void* const_pointer;
7621 typedef void value_type;
7623 template<
typename _Tp1>
7625 {
typedef allocator<_Tp1> other; };
7630 typedef true_type propagate_on_container_move_assignment;
7633 # 91 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/allocator.h" 3
7634 template<
typename _Tp>
7635 class allocator:
public __allocator_base<_Tp>
7638 typedef size_t size_type;
7639 typedef ptrdiff_t difference_type;
7640 typedef _Tp* pointer;
7641 typedef const _Tp* const_pointer;
7642 typedef _Tp& reference;
7643 typedef const _Tp& const_reference;
7644 typedef _Tp value_type;
7646 template<
typename _Tp1>
7648 {
typedef allocator<_Tp1> other; };
7653 typedef true_type propagate_on_container_move_assignment;
7656 allocator() throw() { }
7658 allocator(
const allocator& __a)
throw()
7659 : __allocator_base<_Tp>(__a) { }
7661 template<
typename _Tp1>
7662 allocator(
const allocator<_Tp1>&) throw() { }
7664 ~allocator() throw() { }
7669 template<
typename _T1,
typename _T2>
7671 operator==(
const allocator<_T1>&,
const allocator<_T2>&)
7674 template<
typename _Tp>
7676 operator==(
const allocator<_Tp>&,
const allocator<_Tp>&)
7679 template<
typename _T1,
typename _T2>
7681 operator!=(
const allocator<_T1>&,
const allocator<_T2>&)
7684 template<
typename _Tp>
7686 operator!=(
const allocator<_Tp>&,
const allocator<_Tp>&)
7694 extern template class allocator<char>;
7695 extern template class allocator<wchar_t>;
7702 template<
typename _Alloc,
bool = __is_empty(_Alloc)>
7704 {
static void _S_do_it(_Alloc&, _Alloc&) noexcept { } };
7706 template<
typename _Alloc>
7707 struct __alloc_swap<_Alloc, false>
7710 _S_do_it(_Alloc& __one, _Alloc& __two) noexcept
7719 template<
typename _Alloc,
bool = __is_empty(_Alloc)>
7723 _S_do_it(
const _Alloc&,
const _Alloc&)
7727 template<
typename _Alloc>
7728 struct __alloc_neq<_Alloc, false>
7731 _S_do_it(
const _Alloc& __one,
const _Alloc& __two)
7732 {
return __one != __two; }
7736 template<
typename _Tp,
bool
7737 = __or_<is_copy_constructible<typename _Tp::value_type>,
7738 is_nothrow_move_constructible<typename _Tp::value_type>>::value>
7739 struct __shrink_to_fit_aux
7740 {
static bool _S_do_it(_Tp&) noexcept {
return false; } };
7742 template<
typename _Tp>
7743 struct __shrink_to_fit_aux<_Tp, true>
7746 _S_do_it(_Tp& __c) noexcept
7750 _Tp(__make_move_if_noexcept_iterator(__c.begin()),
7751 __make_move_if_noexcept_iterator(__c.end()),
7752 __c.get_allocator()).swap(__c);
7763 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
7765 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/localefwd.h" 1 3
7766 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/localefwd.h" 3
7769 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++locale.h" 1 3
7770 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++locale.h" 3
7772 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/clocale" 1 3
7773 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/clocale" 3
7776 # 1 "/usr/include/locale.h" 1 3 4
7777 # 28 "/usr/include/locale.h" 3 4
7778 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
7779 # 29 "/usr/include/locale.h" 2 3 4
7780 # 1 "/usr/include/bits/locale.h" 1 3 4
7781 # 30 "/usr/include/locale.h" 2 3 4
7784 # 53 "/usr/include/locale.h" 3 4
7789 char *decimal_point;
7790 char *thousands_sep;
7802 char *int_curr_symbol;
7803 char *currency_symbol;
7804 char *mon_decimal_point;
7805 char *mon_thousands_sep;
7807 char *positive_sign;
7808 char *negative_sign;
7809 char int_frac_digits;
7814 char p_sep_by_space;
7818 char n_sep_by_space;
7829 char int_p_cs_precedes;
7831 char int_p_sep_by_space;
7833 char int_n_cs_precedes;
7835 char int_n_sep_by_space;
7842 char int_p_sign_posn;
7843 char int_n_sign_posn;
7844 # 120 "/usr/include/locale.h" 3 4
7849 extern char *setlocale (
int __category,
const char *__locale)
throw ();
7852 extern struct lconv *localeconv (
void) throw ();
7853 # 151 "/usr/include/locale.h" 3 4
7854 extern __locale_t newlocale (
int __category_mask,
const char *__locale,
7856 # 186 "/usr/include/locale.h" 3 4
7861 extern void freelocale (
__locale_t __dataset)
throw ();
7877 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/clocale" 2 3
7892 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++locale.h" 2 3
7899 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
7903 extern "C" __typeof(uselocale) __uselocale;
7909 namespace std __attribute__ ((__visibility__ ("default")))
7920 __convert_from_v(
const __c_locale& __cloc __attribute__ ((__unused__)),
7922 const int __size __attribute__ ((__unused__)),
7923 const char* __fmt, ...)
7926 __c_locale __old = __gnu_cxx::__uselocale(__cloc);
7927 # 88 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++locale.h" 3
7928 __builtin_va_list __args;
7929 __builtin_va_start(__args, __fmt);
7932 const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
7937 __builtin_va_end(__args);
7940 __gnu_cxx::__uselocale(__old);
7953 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/localefwd.h" 2 3
7954 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/iosfwd" 1 3
7955 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/iosfwd" 3
7961 namespace std __attribute__ ((__visibility__ ("default")))
7963 # 74 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/iosfwd" 3
7966 template<
typename _CharT,
typename _Traits =
char_traits<_CharT> >
7969 template<
typename _CharT,
typename _Traits =
char_traits<_CharT> >
7970 class basic_streambuf;
7972 template<
typename _CharT,
typename _Traits =
char_traits<_CharT> >
7973 class basic_istream;
7975 template<
typename _CharT,
typename _Traits =
char_traits<_CharT> >
7976 class basic_ostream;
7978 template<
typename _CharT,
typename _Traits =
char_traits<_CharT> >
7979 class basic_iostream;
7981 template<
typename _CharT,
typename _Traits =
char_traits<_CharT>,
7982 typename _Alloc = allocator<_CharT> >
7983 class basic_stringbuf;
7985 template<
typename _CharT,
typename _Traits =
char_traits<_CharT>,
7986 typename _Alloc = allocator<_CharT> >
7987 class basic_istringstream;
7989 template<
typename _CharT,
typename _Traits =
char_traits<_CharT>,
7990 typename _Alloc = allocator<_CharT> >
7991 class basic_ostringstream;
7993 template<
typename _CharT,
typename _Traits =
char_traits<_CharT>,
7994 typename _Alloc = allocator<_CharT> >
7995 class basic_stringstream;
7997 template<
typename _CharT,
typename _Traits =
char_traits<_CharT> >
7998 class basic_filebuf;
8000 template<
typename _CharT,
typename _Traits =
char_traits<_CharT> >
8001 class basic_ifstream;
8003 template<
typename _CharT,
typename _Traits =
char_traits<_CharT> >
8004 class basic_ofstream;
8006 template<
typename _CharT,
typename _Traits =
char_traits<_CharT> >
8007 class basic_fstream;
8009 template<
typename _CharT,
typename _Traits =
char_traits<_CharT> >
8010 class istreambuf_iterator;
8012 template<
typename _CharT,
typename _Traits =
char_traits<_CharT> >
8013 class ostreambuf_iterator;
8017 typedef basic_ios<char> ios;
8020 typedef basic_streambuf<char> streambuf;
8023 typedef basic_istream<char> istream;
8026 typedef basic_ostream<char> ostream;
8029 typedef basic_iostream<char> iostream;
8032 typedef basic_stringbuf<char> stringbuf;
8035 typedef basic_istringstream<char> istringstream;
8038 typedef basic_ostringstream<char> ostringstream;
8041 typedef basic_stringstream<char> stringstream;
8044 typedef basic_filebuf<char> filebuf;
8047 typedef basic_ifstream<char> ifstream;
8050 typedef basic_ofstream<char> ofstream;
8053 typedef basic_fstream<char> fstream;
8057 typedef basic_ios<wchar_t> wios;
8060 typedef basic_streambuf<wchar_t> wstreambuf;
8063 typedef basic_istream<wchar_t> wistream;
8066 typedef basic_ostream<wchar_t> wostream;
8069 typedef basic_iostream<wchar_t> wiostream;
8072 typedef basic_stringbuf<wchar_t> wstringbuf;
8075 typedef basic_istringstream<wchar_t> wistringstream;
8078 typedef basic_ostringstream<wchar_t> wostringstream;
8081 typedef basic_stringstream<wchar_t> wstringstream;
8084 typedef basic_filebuf<wchar_t> wfilebuf;
8087 typedef basic_ifstream<wchar_t> wifstream;
8090 typedef basic_ofstream<wchar_t> wofstream;
8093 typedef basic_fstream<wchar_t> wfstream;
8099 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/localefwd.h" 2 3
8100 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cctype" 1 3
8101 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cctype" 3
8104 # 1 "/usr/include/ctype.h" 1 3 4
8105 # 26 "/usr/include/ctype.h" 3 4
8106 # 1 "/usr/include/bits/types.h" 1 3 4
8107 # 27 "/usr/include/bits/types.h" 3 4
8108 # 1 "/usr/include/bits/wordsize.h" 1 3 4
8109 # 28 "/usr/include/bits/types.h" 2 3 4
8112 typedef unsigned char __u_char;
8113 typedef unsigned short int __u_short;
8114 typedef unsigned int __u_int;
8115 typedef unsigned long int __u_long;
8118 typedef signed char __int8_t;
8119 typedef unsigned char __uint8_t;
8120 typedef signed short int __int16_t;
8121 typedef unsigned short int __uint16_t;
8122 typedef signed int __int32_t;
8123 typedef unsigned int __uint32_t;
8125 typedef signed long int __int64_t;
8126 typedef unsigned long int __uint64_t;
8134 typedef long int __quad_t;
8135 typedef unsigned long int __u_quad_t;
8136 # 121 "/usr/include/bits/types.h" 3 4
8137 # 1 "/usr/include/bits/typesizes.h" 1 3 4
8138 # 122 "/usr/include/bits/types.h" 2 3 4
8141 typedef unsigned long int __dev_t;
8142 typedef unsigned int __uid_t;
8143 typedef unsigned int __gid_t;
8144 typedef unsigned long int __ino_t;
8145 typedef unsigned long int __ino64_t;
8146 typedef unsigned int __mode_t;
8147 typedef unsigned long int __nlink_t;
8148 typedef long int __off_t;
8149 typedef long int __off64_t;
8150 typedef int __pid_t;
8151 typedef struct {
int __val[2]; }
__fsid_t;
8152 typedef long int __clock_t;
8153 typedef unsigned long int __rlim_t;
8154 typedef unsigned long int __rlim64_t;
8155 typedef unsigned int __id_t;
8156 typedef long int __time_t;
8157 typedef unsigned int __useconds_t;
8158 typedef long int __suseconds_t;
8160 typedef int __daddr_t;
8161 typedef int __key_t;
8164 typedef int __clockid_t;
8167 typedef void * __timer_t;
8170 typedef long int __blksize_t;
8175 typedef long int __blkcnt_t;
8176 typedef long int __blkcnt64_t;
8179 typedef unsigned long int __fsblkcnt_t;
8180 typedef unsigned long int __fsblkcnt64_t;
8183 typedef unsigned long int __fsfilcnt_t;
8184 typedef unsigned long int __fsfilcnt64_t;
8187 typedef long int __fsword_t;
8189 typedef long int __ssize_t;
8192 typedef long int __syscall_slong_t;
8194 typedef unsigned long int __syscall_ulong_t;
8198 typedef __off64_t __loff_t;
8199 typedef __quad_t *__qaddr_t;
8200 typedef char *__caddr_t;
8203 typedef long int __intptr_t;
8206 typedef unsigned int __socklen_t;
8207 # 27 "/usr/include/ctype.h" 2 3 4
8210 # 39 "/usr/include/ctype.h" 3 4
8211 # 1 "/usr/include/endian.h" 1 3 4
8212 # 36 "/usr/include/endian.h" 3 4
8213 # 1 "/usr/include/bits/endian.h" 1 3 4
8214 # 37 "/usr/include/endian.h" 2 3 4
8215 # 60 "/usr/include/endian.h" 3 4
8216 # 1 "/usr/include/bits/byteswap.h" 1 3 4
8217 # 28 "/usr/include/bits/byteswap.h" 3 4
8218 # 1 "/usr/include/bits/wordsize.h" 1 3 4
8219 # 29 "/usr/include/bits/byteswap.h" 2 3 4
8226 # 1 "/usr/include/bits/byteswap-16.h" 1 3 4
8227 # 36 "/usr/include/bits/byteswap.h" 2 3 4
8228 # 61 "/usr/include/endian.h" 2 3 4
8229 # 40 "/usr/include/ctype.h" 2 3 4
8238 _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
8239 _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
8240 _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
8241 _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
8242 _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
8243 _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
8244 _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
8245 _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
8246 _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
8247 _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
8248 _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
8249 _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
8251 # 79 "/usr/include/ctype.h" 3 4
8252 extern const unsigned short int **__ctype_b_loc (
void)
8253 throw () __attribute__ ((__const__));
8254 extern const __int32_t **__ctype_tolower_loc (
void)
8255 throw () __attribute__ ((__const__));
8256 extern const __int32_t **__ctype_toupper_loc (
void)
8257 throw () __attribute__ ((__const__));
8258 # 110 "/usr/include/ctype.h" 3 4
8259 extern int isalnum (
int) throw ();
8260 extern
int isalpha (
int) throw ();
8261 extern
int iscntrl (
int) throw ();
8262 extern
int isdigit (
int) throw ();
8263 extern
int islower (
int) throw ();
8264 extern
int isgraph (
int) throw ();
8265 extern
int isprint (
int) throw ();
8266 extern
int ispunct (
int) throw ();
8267 extern
int isspace (
int) throw ();
8268 extern
int isupper (
int) throw ();
8269 extern
int isxdigit (
int) throw ();
8273 extern
int tolower (
int __c) throw ();
8276 extern
int toupper (
int __c) throw ();
8277 # 136 "/usr/include/ctype.h" 3 4
8278 extern int isblank (
int) throw ();
8285 extern
int isctype (
int __c,
int __mask) throw ();
8292 extern
int isascii (
int __c) throw ();
8296 extern
int toascii (
int __c) throw ();
8300 extern
int _toupper (
int) throw ();
8301 extern
int _tolower (
int) throw ();
8302 # 271 "/usr/include/ctype.h" 3 4
8303 extern int isalnum_l (
int,
__locale_t) throw ();
8304 extern
int isalpha_l (
int,
__locale_t) throw ();
8305 extern
int iscntrl_l (
int,
__locale_t) throw ();
8306 extern
int isdigit_l (
int,
__locale_t) throw ();
8307 extern
int islower_l (
int,
__locale_t) throw ();
8308 extern
int isgraph_l (
int,
__locale_t) throw ();
8309 extern
int isprint_l (
int,
__locale_t) throw ();
8310 extern
int ispunct_l (
int,
__locale_t) throw ();
8311 extern
int isspace_l (
int,
__locale_t) throw ();
8312 extern
int isupper_l (
int,
__locale_t) throw ();
8313 extern
int isxdigit_l (
int,
__locale_t) throw ();
8315 extern
int isblank_l (
int,
__locale_t) throw ();
8319 extern
int __tolower_l (
int __c,
__locale_t __l) throw ();
8320 extern
int tolower_l (
int __c,
__locale_t __l) throw ();
8323 extern
int __toupper_l (
int __c,
__locale_t __l) throw ();
8324 extern
int toupper_l (
int __c,
__locale_t __l) throw ();
8325 # 347 "/usr/include/ctype.h" 3 4
8327 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cctype" 2 3
8328 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cctype" 3
8356 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/localefwd.h" 2 3
8358 namespace std __attribute__ ((__visibility__ ("default")))
8360 # 55 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/localefwd.h" 3
8363 template<
typename _Facet>
8365 has_facet(
const locale&) throw();
8367 template<typename _Facet>
8369 use_facet(const locale&);
8372 template<typename _CharT>
8374 isspace(_CharT, const locale&);
8376 template<typename _CharT>
8378 isprint(_CharT, const locale&);
8380 template<typename _CharT>
8382 iscntrl(_CharT, const locale&);
8384 template<typename _CharT>
8386 isupper(_CharT, const locale&);
8388 template<typename _CharT>
8390 islower(_CharT, const locale&);
8392 template<typename _CharT>
8394 isalpha(_CharT, const locale&);
8396 template<typename _CharT>
8398 isdigit(_CharT, const locale&);
8400 template<typename _CharT>
8402 ispunct(_CharT, const locale&);
8404 template<typename _CharT>
8406 isxdigit(_CharT, const locale&);
8408 template<typename _CharT>
8410 isalnum(_CharT, const locale&);
8412 template<typename _CharT>
8414 isgraph(_CharT, const locale&);
8416 template<typename _CharT>
8418 toupper(_CharT, const locale&);
8420 template<typename _CharT>
8422 tolower(_CharT, const locale&);
8426 template<typename _CharT>
8428 template<> class ctype<
char>;
8430 template<> class ctype<
wchar_t>;
8432 template<typename _CharT>
8437 template<typename _InternT, typename _ExternT, typename _StateT>
8439 template<> class codecvt<
char,
char,
mbstate_t>;
8441 template<> class codecvt<
wchar_t,
char, mbstate_t>;
8443 template<typename _InternT, typename _ExternT, typename _StateT>
8444 class codecvt_byname;
8448 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
8450 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
8453 template<typename _CharT> class numpunct;
8454 template<typename _CharT> class numpunct_byname;
8457 template<typename _CharT>
8459 template<typename _CharT> class
8464 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
8466 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
8467 class time_get_byname;
8468 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
8470 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
8471 class time_put_byname;
8476 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
8478 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
8481 template<typename _CharT,
bool _Intl = false>
8483 template<typename _CharT,
bool _Intl = false>
8484 class moneypunct_byname;
8487 class messages_base;
8488 template<typename _CharT>
8490 template<typename _CharT>
8491 class messages_byname;
8495 # 44 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
8496 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ostream_insert.h" 1 3
8497 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ostream_insert.h" 3
8500 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/cxxabi_forced.h" 1 3
8501 # 35 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/cxxabi_forced.h" 3
8503 #pragma GCC visibility push(default)
8506 namespace __cxxabiv1
8515 class __forced_unwind
8517 virtual ~__forced_unwind() throw();
8520 virtual
void __pure_dummy() = 0;
8525 #pragma GCC visibility pop
8526 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ostream_insert.h" 2 3
8528 namespace std __attribute__ ((__visibility__ ("default")))
8532 template<
typename _CharT,
typename _Traits>
8534 __ostream_write(basic_ostream<_CharT, _Traits>& __out,
8535 const _CharT* __s, streamsize __n)
8537 typedef basic_ostream<_CharT, _Traits> __ostream_type;
8538 typedef typename __ostream_type::ios_base __ios_base;
8540 const streamsize __put = __out.rdbuf()->sputn(__s, __n);
8542 __out.setstate(__ios_base::badbit);
8545 template<
typename _CharT,
typename _Traits>
8547 __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n)
8549 typedef basic_ostream<_CharT, _Traits> __ostream_type;
8550 typedef typename __ostream_type::ios_base __ios_base;
8552 const _CharT __c = __out.fill();
8553 for (; __n > 0; --__n)
8555 const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c);
8556 if (_Traits::eq_int_type(__put, _Traits::eof()))
8558 __out.setstate(__ios_base::badbit);
8564 template<
typename _CharT,
typename _Traits>
8565 basic_ostream<_CharT, _Traits>&
8566 __ostream_insert(basic_ostream<_CharT, _Traits>& __out,
8567 const _CharT* __s, streamsize __n)
8569 typedef basic_ostream<_CharT, _Traits> __ostream_type;
8570 typedef typename __ostream_type::ios_base __ios_base;
8572 typename __ostream_type::sentry __cerb(__out);
8577 const streamsize __w = __out.width();
8580 const bool __left = ((__out.flags()
8581 & __ios_base::adjustfield)
8582 == __ios_base::left);
8584 __ostream_fill(__out, __w - __n);
8586 __ostream_write(__out, __s, __n);
8587 if (__left && __out.good())
8588 __ostream_fill(__out, __w - __n);
8591 __ostream_write(__out, __s, __n);
8596 __out._M_setstate(__ios_base::badbit);
8600 { __out._M_setstate(__ios_base::badbit); }
8608 extern template ostream& __ostream_insert(ostream&,
const char*, streamsize);
8611 extern template wostream& __ostream_insert(wostream&,
const wchar_t*,
8618 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
8622 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 1 3
8623 # 63 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8624 namespace std __attribute__ ((__visibility__ (
"default")))
8626 # 104 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8627 template<
typename _Arg,
typename _Result>
8628 struct unary_function
8631 typedef _Arg argument_type;
8634 typedef _Result result_type;
8640 template<
typename _Arg1,
typename _Arg2,
typename _Result>
8641 struct binary_function
8644 typedef _Arg1 first_argument_type;
8647 typedef _Arg2 second_argument_type;
8650 typedef _Result result_type;
8652 # 166 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8653 template<
typename _Tp>
8654 struct plus :
public binary_function<_Tp, _Tp, _Tp>
8657 operator()(
const _Tp& __x,
const _Tp& __y)
const
8658 {
return __x + __y; }
8662 template<
typename _Tp>
8663 struct minus :
public binary_function<_Tp, _Tp, _Tp>
8666 operator()(
const _Tp& __x,
const _Tp& __y)
const
8667 {
return __x - __y; }
8671 template<
typename _Tp>
8672 struct multiplies :
public binary_function<_Tp, _Tp, _Tp>
8675 operator()(
const _Tp& __x,
const _Tp& __y)
const
8676 {
return __x * __y; }
8680 template<
typename _Tp>
8681 struct divides :
public binary_function<_Tp, _Tp, _Tp>
8684 operator()(
const _Tp& __x,
const _Tp& __y)
const
8685 {
return __x / __y; }
8689 template<
typename _Tp>
8690 struct modulus :
public binary_function<_Tp, _Tp, _Tp>
8693 operator()(
const _Tp& __x,
const _Tp& __y)
const
8694 {
return __x % __y; }
8698 template<
typename _Tp>
8699 struct negate :
public unary_function<_Tp, _Tp>
8702 operator()(
const _Tp& __x)
const
8705 # 335 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8706 template<
typename _Tp>
8707 struct equal_to :
public binary_function<_Tp, _Tp, bool>
8710 operator()(
const _Tp& __x,
const _Tp& __y)
const
8711 {
return __x == __y; }
8715 template<
typename _Tp>
8716 struct not_equal_to :
public binary_function<_Tp, _Tp, bool>
8719 operator()(
const _Tp& __x,
const _Tp& __y)
const
8720 {
return __x != __y; }
8724 template<
typename _Tp>
8725 struct greater :
public binary_function<_Tp, _Tp, bool>
8728 operator()(
const _Tp& __x,
const _Tp& __y)
const
8729 {
return __x > __y; }
8733 template<
typename _Tp>
8734 struct less :
public binary_function<_Tp, _Tp, bool>
8737 operator()(
const _Tp& __x,
const _Tp& __y)
const
8738 {
return __x < __y; }
8742 template<
typename _Tp>
8743 struct greater_equal :
public binary_function<_Tp, _Tp, bool>
8746 operator()(
const _Tp& __x,
const _Tp& __y)
const
8747 {
return __x >= __y; }
8751 template<
typename _Tp>
8752 struct less_equal :
public binary_function<_Tp, _Tp, bool>
8755 operator()(
const _Tp& __x,
const _Tp& __y)
const
8756 {
return __x <= __y; }
8758 # 496 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8759 template<
typename _Tp>
8760 struct logical_and :
public binary_function<_Tp, _Tp, bool>
8763 operator()(
const _Tp& __x,
const _Tp& __y)
const
8764 {
return __x && __y; }
8768 template<
typename _Tp>
8769 struct logical_or :
public binary_function<_Tp, _Tp, bool>
8772 operator()(
const _Tp& __x,
const _Tp& __y)
const
8773 {
return __x || __y; }
8777 template<
typename _Tp>
8778 struct logical_not :
public unary_function<_Tp, bool>
8781 operator()(
const _Tp& __x)
const
8784 # 583 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8785 template<
typename _Tp>
8786 struct bit_and :
public binary_function<_Tp, _Tp, _Tp>
8789 operator()(
const _Tp& __x,
const _Tp& __y)
const
8790 {
return __x & __y; }
8793 template<
typename _Tp>
8794 struct bit_or :
public binary_function<_Tp, _Tp, _Tp>
8797 operator()(
const _Tp& __x,
const _Tp& __y)
const
8798 {
return __x | __y; }
8801 template<
typename _Tp>
8802 struct bit_xor :
public binary_function<_Tp, _Tp, _Tp>
8805 operator()(
const _Tp& __x,
const _Tp& __y)
const
8806 {
return __x ^ __y; }
8809 template<
typename _Tp>
8810 struct bit_not :
public unary_function<_Tp, _Tp>
8813 operator()(
const _Tp& __x)
const
8816 # 699 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8817 template<
typename _Predicate>
8819 :
public unary_function<typename _Predicate::argument_type, bool>
8826 unary_negate(
const _Predicate& __x) : _M_pred(__x) { }
8829 operator()(
const typename _Predicate::argument_type& __x)
const
8830 {
return !_M_pred(__x); }
8834 template<
typename _Predicate>
8835 inline unary_negate<_Predicate>
8836 not1(
const _Predicate& __pred)
8837 {
return unary_negate<_Predicate>(__pred); }
8840 template<
typename _Predicate>
8842 :
public binary_function<typename _Predicate::first_argument_type,
8843 typename _Predicate::second_argument_type, bool>
8850 binary_negate(
const _Predicate& __x) : _M_pred(__x) { }
8853 operator()(
const typename _Predicate::first_argument_type& __x,
8854 const typename _Predicate::second_argument_type& __y)
const
8855 {
return !_M_pred(__x, __y); }
8859 template<
typename _Predicate>
8860 inline binary_negate<_Predicate>
8861 not2(
const _Predicate& __pred)
8862 {
return binary_negate<_Predicate>(__pred); }
8863 # 770 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8864 template<
typename _Arg,
typename _Result>
8865 class pointer_to_unary_function :
public unary_function<_Arg, _Result>
8868 _Result (*_M_ptr)(_Arg);
8871 pointer_to_unary_function() { }
8874 pointer_to_unary_function(_Result (*__x)(_Arg))
8878 operator()(_Arg __x)
const
8879 {
return _M_ptr(__x); }
8883 template<
typename _Arg,
typename _Result>
8884 inline pointer_to_unary_function<_Arg, _Result>
8885 ptr_fun(_Result (*__x)(_Arg))
8886 {
return pointer_to_unary_function<_Arg, _Result>(__x); }
8889 template<
typename _Arg1,
typename _Arg2,
typename _Result>
8890 class pointer_to_binary_function
8891 :
public binary_function<_Arg1, _Arg2, _Result>
8894 _Result (*_M_ptr)(_Arg1, _Arg2);
8897 pointer_to_binary_function() { }
8900 pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2))
8904 operator()(_Arg1 __x, _Arg2 __y)
const
8905 {
return _M_ptr(__x, __y); }
8909 template<
typename _Arg1,
typename _Arg2,
typename _Result>
8910 inline pointer_to_binary_function<_Arg1, _Arg2, _Result>
8911 ptr_fun(_Result (*__x)(_Arg1, _Arg2))
8912 {
return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); }
8915 template<
typename _Tp>
8917 :
public unary_function<_Tp,_Tp>
8920 operator()(_Tp& __x)
const
8924 operator()(
const _Tp& __x)
const
8928 template<
typename _Pair>
8930 :
public unary_function<_Pair, typename _Pair::first_type>
8932 typename _Pair::first_type&
8933 operator()(_Pair& __x)
const
8934 {
return __x.first; }
8936 const typename _Pair::first_type&
8937 operator()(
const _Pair& __x)
const
8938 {
return __x.first; }
8941 template<
typename _Pair2>
8942 typename _Pair2::first_type&
8943 operator()(_Pair2& __x)
const
8944 {
return __x.first; }
8946 template<
typename _Pair2>
8947 const typename _Pair2::first_type&
8948 operator()(
const _Pair2& __x)
const
8949 {
return __x.first; }
8953 template<
typename _Pair>
8955 :
public unary_function<_Pair, typename _Pair::second_type>
8957 typename _Pair::second_type&
8958 operator()(_Pair& __x)
const
8959 {
return __x.second; }
8961 const typename _Pair::second_type&
8962 operator()(
const _Pair& __x)
const
8963 {
return __x.second; }
8965 # 890 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8966 template<
typename _Ret,
typename _Tp>
8967 class mem_fun_t :
public unary_function<_Tp*, _Ret>
8971 mem_fun_t(_Ret (_Tp::*__pf)())
8975 operator()(_Tp* __p)
const
8976 {
return (__p->*_M_f)(); }
8979 _Ret (_Tp::*_M_f)();
8984 template<
typename _Ret,
typename _Tp>
8985 class const_mem_fun_t :
public unary_function<const _Tp*, _Ret>
8989 const_mem_fun_t(_Ret (_Tp::*__pf)()
const)
8993 operator()(
const _Tp* __p)
const
8994 {
return (__p->*_M_f)(); }
8997 _Ret (_Tp::*_M_f)()
const;
9002 template<
typename _Ret,
typename _Tp>
9003 class mem_fun_ref_t :
public unary_function<_Tp, _Ret>
9007 mem_fun_ref_t(_Ret (_Tp::*__pf)())
9011 operator()(_Tp& __r)
const
9012 {
return (__r.*_M_f)(); }
9015 _Ret (_Tp::*_M_f)();
9020 template<
typename _Ret,
typename _Tp>
9021 class const_mem_fun_ref_t :
public unary_function<_Tp, _Ret>
9025 const_mem_fun_ref_t(_Ret (_Tp::*__pf)()
const)
9029 operator()(
const _Tp& __r)
const
9030 {
return (__r.*_M_f)(); }
9033 _Ret (_Tp::*_M_f)()
const;
9038 template<
typename _Ret,
typename _Tp,
typename _Arg>
9039 class mem_fun1_t :
public binary_function<_Tp*, _Arg, _Ret>
9043 mem_fun1_t(_Ret (_Tp::*__pf)(_Arg))
9047 operator()(_Tp* __p, _Arg __x)
const
9048 {
return (__p->*_M_f)(__x); }
9051 _Ret (_Tp::*_M_f)(_Arg);
9056 template<
typename _Ret,
typename _Tp,
typename _Arg>
9057 class const_mem_fun1_t :
public binary_function<const _Tp*, _Arg, _Ret>
9061 const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)
const)
9065 operator()(
const _Tp* __p, _Arg __x)
const
9066 {
return (__p->*_M_f)(__x); }
9069 _Ret (_Tp::*_M_f)(_Arg)
const;
9074 template<
typename _Ret,
typename _Tp,
typename _Arg>
9075 class mem_fun1_ref_t :
public binary_function<_Tp, _Arg, _Ret>
9079 mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg))
9083 operator()(_Tp& __r, _Arg __x)
const
9084 {
return (__r.*_M_f)(__x); }
9087 _Ret (_Tp::*_M_f)(_Arg);
9092 template<
typename _Ret,
typename _Tp,
typename _Arg>
9093 class const_mem_fun1_ref_t :
public binary_function<_Tp, _Arg, _Ret>
9097 const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)
const)
9101 operator()(
const _Tp& __r, _Arg __x)
const
9102 {
return (__r.*_M_f)(__x); }
9105 _Ret (_Tp::*_M_f)(_Arg)
const;
9110 template<
typename _Ret,
typename _Tp>
9111 inline mem_fun_t<_Ret, _Tp>
9112 mem_fun(_Ret (_Tp::*__f)())
9113 {
return mem_fun_t<_Ret, _Tp>(__f); }
9115 template<
typename _Ret,
typename _Tp>
9116 inline const_mem_fun_t<_Ret, _Tp>
9117 mem_fun(_Ret (_Tp::*__f)()
const)
9118 {
return const_mem_fun_t<_Ret, _Tp>(__f); }
9120 template<
typename _Ret,
typename _Tp>
9121 inline mem_fun_ref_t<_Ret, _Tp>
9122 mem_fun_ref(_Ret (_Tp::*__f)())
9123 {
return mem_fun_ref_t<_Ret, _Tp>(__f); }
9125 template<
typename _Ret,
typename _Tp>
9126 inline const_mem_fun_ref_t<_Ret, _Tp>
9127 mem_fun_ref(_Ret (_Tp::*__f)()
const)
9128 {
return const_mem_fun_ref_t<_Ret, _Tp>(__f); }
9130 template<
typename _Ret,
typename _Tp,
typename _Arg>
9131 inline mem_fun1_t<_Ret, _Tp, _Arg>
9132 mem_fun(_Ret (_Tp::*__f)(_Arg))
9133 {
return mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
9135 template<
typename _Ret,
typename _Tp,
typename _Arg>
9136 inline const_mem_fun1_t<_Ret, _Tp, _Arg>
9137 mem_fun(_Ret (_Tp::*__f)(_Arg)
const)
9138 {
return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
9140 template<
typename _Ret,
typename _Tp,
typename _Arg>
9141 inline mem_fun1_ref_t<_Ret, _Tp, _Arg>
9142 mem_fun_ref(_Ret (_Tp::*__f)(_Arg))
9143 {
return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
9145 template<
typename _Ret,
typename _Tp,
typename _Arg>
9146 inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
9147 mem_fun_ref(_Ret (_Tp::*__f)(_Arg)
const)
9148 {
return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
9157 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/backward/binders.h" 1 3
9158 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/backward/binders.h" 3
9159 namespace std __attribute__ ((__visibility__ ("default")))
9161 # 103 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/backward/binders.h" 3
9162 template<
typename _Operation>
9164 :
public unary_function<typename _Operation::second_argument_type,
9165 typename _Operation::result_type>
9169 typename _Operation::first_argument_type value;
9172 binder1st(
const _Operation& __x,
9173 const typename _Operation::first_argument_type& __y)
9174 : op(__x), value(__y) { }
9176 typename _Operation::result_type
9177 operator()(
const typename _Operation::second_argument_type& __x)
const
9178 {
return op(value, __x); }
9182 typename _Operation::result_type
9183 operator()(
typename _Operation::second_argument_type& __x)
const
9184 {
return op(value, __x); }
9185 } __attribute__ ((__deprecated__));
9188 template<
typename _Operation,
typename _Tp>
9189 inline binder1st<_Operation>
9190 bind1st(
const _Operation& __fn,
const _Tp& __x)
9192 typedef typename _Operation::first_argument_type _Arg1_type;
9193 return binder1st<_Operation>(__fn, _Arg1_type(__x));
9197 template<
typename _Operation>
9199 :
public unary_function<typename _Operation::first_argument_type,
9200 typename _Operation::result_type>
9204 typename _Operation::second_argument_type value;
9207 binder2nd(
const _Operation& __x,
9208 const typename _Operation::second_argument_type& __y)
9209 : op(__x), value(__y) { }
9211 typename _Operation::result_type
9212 operator()(
const typename _Operation::first_argument_type& __x)
const
9213 {
return op(__x, value); }
9217 typename _Operation::result_type
9218 operator()(
typename _Operation::first_argument_type& __x)
const
9219 {
return op(__x, value); }
9220 } __attribute__ ((__deprecated__));
9223 template<
typename _Operation,
typename _Tp>
9224 inline binder2nd<_Operation>
9225 bind2nd(
const _Operation& __fn,
const _Tp& __x)
9227 typedef typename _Operation::second_argument_type _Arg2_type;
9228 return binder2nd<_Operation>(__fn, _Arg2_type(__x));
9234 # 1081 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 2 3
9235 # 49 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
9238 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/range_access.h" 1 3
9239 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/range_access.h" 3
9243 namespace std __attribute__ ((__visibility__ ("default")))
9252 template<
class _Container>
9254 begin(_Container& __cont) -> decltype(__cont.begin())
9255 {
return __cont.begin(); }
9262 template<
class _Container>
9264 begin(
const _Container& __cont) -> decltype(__cont.begin())
9265 {
return __cont.begin(); }
9272 template<
class _Container>
9274 end(_Container& __cont) -> decltype(__cont.end())
9275 {
return __cont.end(); }
9282 template<
class _Container>
9284 end(
const _Container& __cont) -> decltype(__cont.end())
9285 {
return __cont.end(); }
9291 template<
class _Tp,
size_t _Nm>
9293 begin(_Tp (&__arr)[_Nm])
9301 template<
class _Tp,
size_t _Nm>
9303 end(_Tp (&__arr)[_Nm])
9304 {
return __arr + _Nm; }
9308 # 52 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
9309 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 1 3
9310 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
9312 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/atomicity.h" 1 3
9313 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/atomicity.h" 3
9316 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr.h" 1 3
9317 # 30 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr.h" 3
9318 #pragma GCC visibility push(default)
9319 # 148 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr.h" 3
9320 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 1 3
9321 # 35 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
9322 # 1 "/usr/include/pthread.h" 1 3 4
9323 # 23 "/usr/include/pthread.h" 3 4
9324 # 1 "/usr/include/sched.h" 1 3 4
9325 # 28 "/usr/include/sched.h" 3 4
9326 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
9327 # 29 "/usr/include/sched.h" 2 3 4
9331 # 1 "/usr/include/time.h" 1 3 4
9332 # 75 "/usr/include/time.h" 3 4
9333 typedef __time_t time_t;
9334 # 120 "/usr/include/time.h" 3 4
9338 __syscall_slong_t tv_nsec;
9340 # 33 "/usr/include/sched.h" 2 3 4
9343 typedef __pid_t pid_t;
9350 # 1 "/usr/include/bits/sched.h" 1 3 4
9351 # 72 "/usr/include/bits/sched.h" 3 4
9354 int __sched_priority;
9361 extern int clone (
int (*__fn) (
void *__arg),
void *__child_stack,
9362 int __flags,
void *__arg, ...) throw ();
9365 extern
int unshare (
int __flags) throw ();
9368 extern
int sched_getcpu (
void) throw ();
9371 extern
int setns (
int __fd,
int __nstype) throw ();
9385 int __sched_priority;
9387 # 118 "/usr/include/bits/sched.h" 3 4
9388 typedef unsigned long int __cpu_mask;
9397 __cpu_mask __bits[1024 / (8 *
sizeof (__cpu_mask))];
9399 # 201 "/usr/include/bits/sched.h" 3 4
9402 extern int __sched_cpucount (
size_t __setsize,
const cpu_set_t *__setp)
9404 extern cpu_set_t *__sched_cpualloc (
size_t __count)
throw () ;
9405 extern void __sched_cpufree (
cpu_set_t *__set)
throw ();
9408 # 42 "/usr/include/sched.h" 2 3 4
9416 extern int sched_setparam (__pid_t __pid,
const struct sched_param *__param)
9420 extern int sched_getparam (__pid_t __pid,
struct sched_param *__param)
throw ();
9423 extern int sched_setscheduler (__pid_t __pid,
int __policy,
9427 extern int sched_getscheduler (__pid_t __pid)
throw ();
9430 extern int sched_yield (
void) throw ();
9433 extern
int sched_get_priority_max (
int __algorithm) throw ();
9436 extern
int sched_get_priority_min (
int __algorithm) throw ();
9439 extern
int sched_rr_get_interval (__pid_t __pid, struct
timespec *__t) throw ();
9440 # 116 "/usr/include/sched.h" 3 4
9441 extern int sched_setaffinity (__pid_t __pid,
size_t __cpusetsize,
9445 extern int sched_getaffinity (__pid_t __pid,
size_t __cpusetsize,
9450 # 24 "/usr/include/pthread.h" 2 3 4
9451 # 1 "/usr/include/time.h" 1 3 4
9452 # 29 "/usr/include/time.h" 3 4
9462 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
9463 # 38 "/usr/include/time.h" 2 3 4
9467 # 1 "/usr/include/bits/time.h" 1 3 4
9468 # 30 "/usr/include/bits/time.h" 3 4
9472 __suseconds_t tv_usec;
9474 # 86 "/usr/include/bits/time.h" 3 4
9475 # 1 "/usr/include/bits/timex.h" 1 3 4
9476 # 25 "/usr/include/bits/timex.h" 3 4
9480 __syscall_slong_t offset;
9481 __syscall_slong_t freq;
9482 __syscall_slong_t maxerror;
9483 __syscall_slong_t esterror;
9485 __syscall_slong_t constant;
9486 __syscall_slong_t precision;
9487 __syscall_slong_t tolerance;
9489 __syscall_slong_t tick;
9490 __syscall_slong_t ppsfreq;
9491 __syscall_slong_t jitter;
9493 __syscall_slong_t stabil;
9494 __syscall_slong_t jitcnt;
9495 __syscall_slong_t calcnt;
9496 __syscall_slong_t errcnt;
9497 __syscall_slong_t stbcnt;
9502 int :32;
int :32;
int :32;
int :32;
9503 int :32;
int :32;
int :32;
int :32;
9504 int :32;
int :32;
int :32;
9506 # 87 "/usr/include/bits/time.h" 2 3 4
9511 extern int clock_adjtime (__clockid_t __clock_id,
struct timex *__utx)
throw ();
9514 # 42 "/usr/include/time.h" 2 3 4
9515 # 59 "/usr/include/time.h" 3 4
9516 typedef __clock_t clock_t;
9517 # 91 "/usr/include/time.h" 3 4
9518 typedef __clockid_t clockid_t;
9519 # 103 "/usr/include/time.h" 3 4
9520 typedef __timer_t timer_t;
9521 # 133 "/usr/include/time.h" 3 4
9536 const char *tm_zone;
9542 # 161 "/usr/include/time.h" 3 4
9551 # 189 "/usr/include/time.h" 3 4
9552 extern clock_t clock (
void) throw ();
9555 extern time_t time (time_t *__timer) throw ();
9558 extern
double difftime (time_t __time1, time_t __time0)
9559 throw () __attribute__ ((__const__));
9562 extern time_t mktime (struct
tm *__tp) throw ();
9568 extern
size_t strftime (
char *__restrict __s,
size_t __maxsize,
9569 const
char *__restrict __format,
9570 const struct
tm *__restrict __tp) throw ();
9576 extern
char *strptime (const
char *__restrict __s,
9577 const
char *__restrict __fmt, struct
tm *__tp)
9586 extern
size_t strftime_l (
char *__restrict __s,
size_t __maxsize,
9587 const
char *__restrict __format,
9588 const struct
tm *__restrict __tp,
9593 extern
char *strptime_l (const
char *__restrict __s,
9594 const
char *__restrict __fmt, struct
tm *__tp,
9602 extern struct
tm *gmtime (const time_t *__timer) throw ();
9606 extern struct
tm *localtime (const time_t *__timer) throw ();
9612 extern struct
tm *gmtime_r (const time_t *__restrict __timer,
9613 struct
tm *__restrict __tp) throw ();
9617 extern struct
tm *localtime_r (const time_t *__restrict __timer,
9618 struct
tm *__restrict __tp) throw ();
9624 extern
char *asctime (const struct
tm *__tp) throw ();
9627 extern
char *ctime (const time_t *__timer) throw ();
9635 extern
char *asctime_r (const struct
tm *__restrict __tp,
9636 char *__restrict __buf) throw ();
9639 extern
char *ctime_r (const time_t *__restrict __timer,
9640 char *__restrict __buf) throw ();
9645 extern
char *__tzname[2];
9646 extern
int __daylight;
9647 extern
long int __timezone;
9652 extern
char *tzname[2];
9656 extern
void tzset (
void) throw ();
9660 extern
int daylight;
9661 extern
long int timezone;
9667 extern
int stime (const time_t *__when) throw ();
9668 # 319 "/usr/include/time.h" 3 4
9669 extern time_t timegm (
struct tm *__tp)
throw ();
9672 extern time_t timelocal (
struct tm *__tp)
throw ();
9675 extern int dysize (
int __year)
throw () __attribute__ ((__const__));
9676 # 334 "/usr/include/time.h" 3 4
9677 extern int nanosleep (
const struct timespec *__requested_time,
9682 extern int clock_getres (clockid_t __clock_id,
struct timespec *__res)
throw ();
9685 extern int clock_gettime (clockid_t __clock_id,
struct timespec *__tp)
throw ();
9688 extern int clock_settime (clockid_t __clock_id,
const struct timespec *__tp)
9696 extern int clock_nanosleep (clockid_t __clock_id,
int __flags,
9701 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id)
throw ();
9706 extern int timer_create (clockid_t __clock_id,
9707 struct sigevent *__restrict __evp,
9708 timer_t *__restrict __timerid)
throw ();
9711 extern int timer_delete (timer_t __timerid)
throw ();
9714 extern int timer_settime (timer_t __timerid,
int __flags,
9716 struct itimerspec *__restrict __ovalue)
throw ();
9719 extern int timer_gettime (timer_t __timerid,
struct itimerspec *__value)
9723 extern int timer_getoverrun (timer_t __timerid)
throw ();
9729 extern int timespec_get (
struct timespec *__ts,
int __base)
9730 throw () __attribute__ ((__nonnull__ (1)));
9731 # 403 "/usr/include/time.h" 3 4
9732 extern int getdate_err;
9733 # 412 "/usr/include/time.h" 3 4
9734 extern struct tm *getdate (
const char *__string);
9735 # 426 "/usr/include/time.h" 3 4
9736 extern int getdate_r (
const char *__restrict __string,
9737 struct tm *__restrict __resbufp);
9741 # 25 "/usr/include/pthread.h" 2 3 4
9743 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
9744 # 21 "/usr/include/bits/pthreadtypes.h" 3 4
9745 # 1 "/usr/include/bits/wordsize.h" 1 3 4
9746 # 22 "/usr/include/bits/pthreadtypes.h" 2 3 4
9747 # 60 "/usr/include/bits/pthreadtypes.h" 3 4
9748 typedef unsigned long int pthread_t;
9768 # 90 "/usr/include/bits/pthreadtypes.h" 3 4
9771 struct __pthread_mutex_s
9774 unsigned int __count;
9777 unsigned int __nusers;
9786 # 124 "/usr/include/bits/pthreadtypes.h" 3 4
9806 unsigned int __futex;
9807 __extension__
unsigned long long int __total_seq;
9808 __extension__
unsigned long long int __wakeup_seq;
9809 __extension__
unsigned long long int __woken_seq;
9811 unsigned int __nwaiters;
9812 unsigned int __broadcast_seq;
9815 __extension__
long long int __align;
9826 typedef unsigned int pthread_key_t;
9830 typedef int pthread_once_t;
9842 unsigned int __nr_readers;
9843 unsigned int __readers_wakeup;
9844 unsigned int __writer_wakeup;
9845 unsigned int __nr_readers_queued;
9846 unsigned int __nr_writers_queued;
9849 unsigned long int __pad1;
9850 unsigned long int __pad2;
9853 unsigned int __flags;
9856 # 211 "/usr/include/bits/pthreadtypes.h" 3 4
9871 typedef volatile int pthread_spinlock_t;
9887 # 27 "/usr/include/pthread.h" 2 3 4
9888 # 1 "/usr/include/bits/setjmp.h" 1 3 4
9889 # 26 "/usr/include/bits/setjmp.h" 3 4
9890 # 1 "/usr/include/bits/wordsize.h" 1 3 4
9891 # 27 "/usr/include/bits/setjmp.h" 2 3 4
9896 typedef long int __jmp_buf[8];
9897 # 28 "/usr/include/pthread.h" 2 3 4
9898 # 1 "/usr/include/bits/wordsize.h" 1 3 4
9899 # 29 "/usr/include/pthread.h" 2 3 4
9905 PTHREAD_CREATE_JOINABLE,
9907 PTHREAD_CREATE_DETACHED
9915 PTHREAD_MUTEX_TIMED_NP,
9916 PTHREAD_MUTEX_RECURSIVE_NP,
9917 PTHREAD_MUTEX_ERRORCHECK_NP,
9918 PTHREAD_MUTEX_ADAPTIVE_NP
9921 PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
9922 PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
9923 PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
9924 PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
9928 , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
9937 PTHREAD_MUTEX_STALLED,
9938 PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
9939 PTHREAD_MUTEX_ROBUST,
9940 PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
9950 PTHREAD_PRIO_INHERIT,
9951 PTHREAD_PRIO_PROTECT
9953 # 125 "/usr/include/pthread.h" 3 4
9956 PTHREAD_RWLOCK_PREFER_READER_NP,
9957 PTHREAD_RWLOCK_PREFER_WRITER_NP,
9958 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
9959 PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
9961 # 166 "/usr/include/pthread.h" 3 4
9964 PTHREAD_INHERIT_SCHED,
9966 PTHREAD_EXPLICIT_SCHED
9974 PTHREAD_SCOPE_SYSTEM,
9976 PTHREAD_SCOPE_PROCESS
9984 PTHREAD_PROCESS_PRIVATE,
9986 PTHREAD_PROCESS_SHARED
9989 # 201 "/usr/include/pthread.h" 3 4
9992 void (*__routine) (
void *);
10001 PTHREAD_CANCEL_ENABLE,
10003 PTHREAD_CANCEL_DISABLE
10008 PTHREAD_CANCEL_DEFERRED,
10010 PTHREAD_CANCEL_ASYNCHRONOUS
10013 # 239 "/usr/include/pthread.h" 3 4
10019 extern int pthread_create (pthread_t *__restrict __newthread,
10021 void *(*__start_routine) (
void *),
10022 void *__restrict __arg)
throw () __attribute__ ((__nonnull__ (1, 3)));
10028 extern void pthread_exit (
void *__retval) __attribute__ ((__noreturn__));
10036 extern int pthread_join (pthread_t __th,
void **__thread_return);
10041 extern int pthread_tryjoin_np (pthread_t __th,
void **__thread_return)
throw ();
10049 extern int pthread_timedjoin_np (pthread_t __th,
void **__thread_return,
10050 const struct timespec *__abstime);
10057 extern int pthread_detach (pthread_t __th)
throw ();
10061 extern pthread_t pthread_self (
void) throw () __attribute__ ((__const__));
10064 extern
int pthread_equal (pthread_t __thread1, pthread_t __thread2)
10065 throw () __attribute__ ((__const__));
10073 extern
int pthread_attr_init (
pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1)));
10077 throw () __attribute__ ((__nonnull__ (1)));
10080 extern
int pthread_attr_getdetachstate (const
pthread_attr_t *__attr,
10081 int *__detachstate)
10082 throw () __attribute__ ((__nonnull__ (1, 2)));
10087 throw () __attribute__ ((__nonnull__ (1)));
10091 extern
int pthread_attr_getguardsize (const
pthread_attr_t *__attr,
10092 size_t *__guardsize)
10093 throw () __attribute__ ((__nonnull__ (1, 2)));
10097 size_t __guardsize)
10098 throw () __attribute__ ((__nonnull__ (1)));
10102 extern
int pthread_attr_getschedparam (const
pthread_attr_t *__restrict __attr,
10104 throw () __attribute__ ((__nonnull__ (1, 2)));
10107 extern
int pthread_attr_setschedparam (
pthread_attr_t *__restrict __attr,
10109 __param) throw () __attribute__ ((__nonnull__ (1, 2)));
10112 extern
int pthread_attr_getschedpolicy (const
pthread_attr_t *__restrict
10113 __attr,
int *__restrict __policy)
10114 throw () __attribute__ ((__nonnull__ (1, 2)));
10117 extern
int pthread_attr_setschedpolicy (
pthread_attr_t *__attr,
int __policy)
10118 throw () __attribute__ ((__nonnull__ (1)));
10121 extern
int pthread_attr_getinheritsched (const
pthread_attr_t *__restrict
10122 __attr,
int *__restrict __inherit)
10123 throw () __attribute__ ((__nonnull__ (1, 2)));
10126 extern
int pthread_attr_setinheritsched (
pthread_attr_t *__attr,
10128 throw () __attribute__ ((__nonnull__ (1)));
10132 extern
int pthread_attr_getscope (const
pthread_attr_t *__restrict __attr,
10133 int *__restrict __scope)
10134 throw () __attribute__ ((__nonnull__ (1, 2)));
10137 extern
int pthread_attr_setscope (
pthread_attr_t *__attr,
int __scope)
10138 throw () __attribute__ ((__nonnull__ (1)));
10141 extern
int pthread_attr_getstackaddr (const
pthread_attr_t *__restrict
10142 __attr,
void **__restrict __stackaddr)
10143 throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__));
10151 throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__));
10154 extern
int pthread_attr_getstacksize (const
pthread_attr_t *__restrict
10155 __attr,
size_t *__restrict __stacksize)
10156 throw () __attribute__ ((__nonnull__ (1, 2)));
10162 size_t __stacksize)
10163 throw () __attribute__ ((__nonnull__ (1)));
10167 extern
int pthread_attr_getstack (const
pthread_attr_t *__restrict __attr,
10168 void **__restrict __stackaddr,
10169 size_t *__restrict __stacksize)
10170 throw () __attribute__ ((__nonnull__ (1, 2, 3)));
10175 extern
int pthread_attr_setstack (
pthread_attr_t *__attr,
void *__stackaddr,
10176 size_t __stacksize) throw () __attribute__ ((__nonnull__ (1)));
10183 size_t __cpusetsize,
10185 throw () __attribute__ ((__nonnull__ (1, 3)));
10189 extern
int pthread_attr_getaffinity_np (const
pthread_attr_t *__attr,
10190 size_t __cpusetsize,
10192 throw () __attribute__ ((__nonnull__ (1, 3)));
10196 throw () __attribute__ ((__nonnull__ (1)));
10200 extern
int pthread_setattr_default_np (const
pthread_attr_t *__attr)
10201 throw () __attribute__ ((__nonnull__ (1)));
10206 extern
int pthread_getattr_np (pthread_t __th,
pthread_attr_t *__attr)
10207 throw () __attribute__ ((__nonnull__ (2)));
10215 extern
int pthread_setschedparam (pthread_t __target_thread,
int __policy,
10217 throw () __attribute__ ((__nonnull__ (3)));
10220 extern
int pthread_getschedparam (pthread_t __target_thread,
10221 int *__restrict __policy,
10223 throw () __attribute__ ((__nonnull__ (2, 3)));
10226 extern
int pthread_setschedprio (pthread_t __target_thread,
int __prio)
10232 extern
int pthread_getname_np (pthread_t __target_thread,
char *__buf,
10234 throw () __attribute__ ((__nonnull__ (2)));
10237 extern
int pthread_setname_np (pthread_t __target_thread, const
char *__name)
10238 throw () __attribute__ ((__nonnull__ (2)));
10244 extern
int pthread_getconcurrency (
void) throw ();
10247 extern
int pthread_setconcurrency (
int __level) throw ();
10255 extern
int pthread_yield (
void) throw ();
10260 extern
int pthread_setaffinity_np (pthread_t __th,
size_t __cpusetsize,
10262 throw () __attribute__ ((__nonnull__ (3)));
10265 extern
int pthread_getaffinity_np (pthread_t __th,
size_t __cpusetsize,
10267 throw () __attribute__ ((__nonnull__ (3)));
10268 # 505 "/usr/include/pthread.h" 3 4
10269 extern int pthread_once (pthread_once_t *__once_control,
10270 void (*__init_routine) (
void)) __attribute__ ((__nonnull__ (1, 2)));
10271 # 517 "/usr/include/pthread.h" 3 4
10272 extern int pthread_setcancelstate (
int __state,
int *__oldstate);
10276 extern int pthread_setcanceltype (
int __type,
int *__oldtype);
10279 extern int pthread_cancel (pthread_t __th);
10284 extern void pthread_testcancel (
void);
10293 __jmp_buf __cancel_jmp_buf;
10294 int __mask_was_saved;
10295 } __cancel_jmp_buf[1];
10298 # 551 "/usr/include/pthread.h" 3 4
10301 void (*__cancel_routine) (
void *);
10302 void *__cancel_arg;
10312 void (*__cancel_routine) (
void *);
10313 void *__cancel_arg;
10319 : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { }
10321 void __setdoit (
int __newval) { __do_it = __newval; }
10322 void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,
10324 void __restore ()
const { pthread_setcanceltype (__cancel_type, 0); }
10326 # 753 "/usr/include/pthread.h" 3 4
10327 struct __jmp_buf_tag;
10328 extern int __sigsetjmp (
struct __jmp_buf_tag *__env,
int __savemask)
throw ();
10336 throw () __attribute__ ((__nonnull__ (1)));
10340 throw () __attribute__ ((__nonnull__ (1)));
10344 throw () __attribute__ ((__nonnull__ (1)));
10348 throw () __attribute__ ((__nonnull__ (1)));
10352 extern int pthread_mutex_timedlock (
pthread_mutex_t *__restrict __mutex,
10354 __abstime)
throw () __attribute__ ((__nonnull__ (1, 2)));
10359 throw () __attribute__ ((__nonnull__ (1)));
10364 __restrict __mutex,
10365 int *__restrict __prioceiling)
10366 throw () __attribute__ ((__nonnull__ (1, 2)));
10370 extern int pthread_mutex_setprioceiling (
pthread_mutex_t *__restrict __mutex,
10372 int *__restrict __old_ceiling)
10373 throw () __attribute__ ((__nonnull__ (1, 3)));
10379 throw () __attribute__ ((__nonnull__ (1)));
10382 throw () __attribute__ ((__nonnull__ (1)));
10383 # 817 "/usr/include/pthread.h" 3 4
10385 throw () __attribute__ ((__nonnull__ (1)));
10389 throw () __attribute__ ((__nonnull__ (1)));
10394 int *__restrict __pshared)
10395 throw () __attribute__ ((__nonnull__ (1, 2)));
10400 throw () __attribute__ ((__nonnull__ (1)));
10405 __attr,
int *__restrict __kind)
10406 throw () __attribute__ ((__nonnull__ (1, 2)));
10412 throw () __attribute__ ((__nonnull__ (1)));
10418 int *__restrict __protocol)
10419 throw () __attribute__ ((__nonnull__ (1, 2)));
10425 throw () __attribute__ ((__nonnull__ (1)));
10430 int *__restrict __prioceiling)
10431 throw () __attribute__ ((__nonnull__ (1, 2)));
10436 throw () __attribute__ ((__nonnull__ (1)));
10442 throw () __attribute__ ((__nonnull__ (1, 2)));
10446 throw () __attribute__ ((__nonnull__ (1, 2)));
10452 throw () __attribute__ ((__nonnull__ (1)));
10456 throw () __attribute__ ((__nonnull__ (1)));
10457 # 899 "/usr/include/pthread.h" 3 4
10460 __attr)
throw () __attribute__ ((__nonnull__ (1)));
10464 throw () __attribute__ ((__nonnull__ (1)));
10468 throw () __attribute__ ((__nonnull__ (1)));
10472 throw () __attribute__ ((__nonnull__ (1)));
10476 extern int pthread_rwlock_timedrdlock (
pthread_rwlock_t *__restrict __rwlock,
10478 __abstime)
throw () __attribute__ ((__nonnull__ (1, 2)));
10483 throw () __attribute__ ((__nonnull__ (1)));
10487 throw () __attribute__ ((__nonnull__ (1)));
10491 extern int pthread_rwlock_timedwrlock (
pthread_rwlock_t *__restrict __rwlock,
10493 __abstime)
throw () __attribute__ ((__nonnull__ (1, 2)));
10498 throw () __attribute__ ((__nonnull__ (1)));
10505 throw () __attribute__ ((__nonnull__ (1)));
10509 throw () __attribute__ ((__nonnull__ (1)));
10514 int *__restrict __pshared)
10515 throw () __attribute__ ((__nonnull__ (1, 2)));
10520 throw () __attribute__ ((__nonnull__ (1)));
10525 int *__restrict __pref)
10526 throw () __attribute__ ((__nonnull__ (1, 2)));
10530 int __pref)
throw () __attribute__ ((__nonnull__ (1)));
10538 extern int pthread_cond_init (
pthread_cond_t *__restrict __cond,
10540 throw () __attribute__ ((__nonnull__ (1)));
10544 throw () __attribute__ ((__nonnull__ (1)));
10548 throw () __attribute__ ((__nonnull__ (1)));
10552 throw () __attribute__ ((__nonnull__ (1)));
10559 extern int pthread_cond_wait (
pthread_cond_t *__restrict __cond,
10561 __attribute__ ((__nonnull__ (1, 2)));
10562 # 1011 "/usr/include/pthread.h" 3 4
10563 extern int pthread_cond_timedwait (
pthread_cond_t *__restrict __cond,
10565 const struct timespec *__restrict __abstime)
10566 __attribute__ ((__nonnull__ (1, 2, 3)));
10572 throw () __attribute__ ((__nonnull__ (1)));
10576 throw () __attribute__ ((__nonnull__ (1)));
10581 int *__restrict __pshared)
10582 throw () __attribute__ ((__nonnull__ (1, 2)));
10586 int __pshared)
throw () __attribute__ ((__nonnull__ (1)));
10592 __clockid_t *__restrict __clock_id)
10593 throw () __attribute__ ((__nonnull__ (1, 2)));
10597 __clockid_t __clock_id)
10598 throw () __attribute__ ((__nonnull__ (1)));
10599 # 1055 "/usr/include/pthread.h" 3 4
10600 extern int pthread_spin_init (pthread_spinlock_t *__lock,
int __pshared)
10601 throw () __attribute__ ((__nonnull__ (1)));
10604 extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
10605 throw () __attribute__ ((__nonnull__ (1)));
10608 extern int pthread_spin_lock (pthread_spinlock_t *__lock)
10609 throw () __attribute__ ((__nonnull__ (1)));
10612 extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
10613 throw () __attribute__ ((__nonnull__ (1)));
10616 extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
10617 throw () __attribute__ ((__nonnull__ (1)));
10626 __attr,
unsigned int __count)
10627 throw () __attribute__ ((__nonnull__ (1)));
10631 throw () __attribute__ ((__nonnull__ (1)));
10635 throw () __attribute__ ((__nonnull__ (1)));
10640 throw () __attribute__ ((__nonnull__ (1)));
10644 throw () __attribute__ ((__nonnull__ (1)));
10649 int *__restrict __pshared)
10650 throw () __attribute__ ((__nonnull__ (1, 2)));
10655 throw () __attribute__ ((__nonnull__ (1)));
10656 # 1122 "/usr/include/pthread.h" 3 4
10657 extern int pthread_key_create (pthread_key_t *__key,
10658 void (*__destr_function) (
void *))
10659 throw () __attribute__ ((__nonnull__ (1)));
10662 extern
int pthread_key_delete (pthread_key_t __key) throw ();
10665 extern
void *pthread_getspecific (pthread_key_t __key) throw ();
10668 extern
int pthread_setspecific (pthread_key_t __key,
10669 const
void *__pointer) throw () ;
10674 extern
int pthread_getcpuclockid (pthread_t __thread_id,
10675 __clockid_t *__clock_id)
10676 throw () __attribute__ ((__nonnull__ (2)));
10677 # 1156 "/usr/include/pthread.h" 3 4
10678 extern int pthread_atfork (
void (*__prepare) (
void),
10679 void (*__parent) (
void),
10680 void (*__child) (
void)) throw ();
10681 # 1170 "/usr/include/pthread.h" 3 4
10683 # 36 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 2 3
10684 # 47 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
10685 typedef pthread_t __gthread_t;
10686 typedef pthread_key_t __gthread_key_t;
10687 typedef pthread_once_t __gthread_once_t;
10692 # 101 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
10693 static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once")));
10694 static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific")));
10695 static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific")));
10697 static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create")));
10698 static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join")));
10699 static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal")));
10700 static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self")));
10701 static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach")));
10703 static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel")));
10705 static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield")));
10707 static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock")));
10708 static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock")));
10710 static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock")));
10712 static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock")));
10713 static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init")));
10714 static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy")));
10716 static __typeof(pthread_cond_init) __gthrw_pthread_cond_init __attribute__ ((__weakref__("pthread_cond_init")));
10717 static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast")));
10718 static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal")));
10719 static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait")));
10720 static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait")));
10721 static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy")));
10723 static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create")));
10724 static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete")));
10725 static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init")));
10726 static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype")));
10727 static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy")));
10728 # 236 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
10729 static __typeof(pthread_key_create) __gthrw___pthread_key_create __attribute__ ((__weakref__("__pthread_key_create")));
10730 # 246 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
10732 __gthread_active_p (
void)
10734 static void *
const __gthread_active_ptr
10735 = __extension__ (
void *) &__gthrw___pthread_key_create;
10736 return __gthread_active_ptr != 0;
10738 # 658 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
10740 __gthread_create (__gthread_t *__threadid,
void *(*__func) (
void*),
10743 return __gthrw_pthread_create (__threadid, __null, __func, __args);
10747 __gthread_join (__gthread_t __threadid,
void **__value_ptr)
10749 return __gthrw_pthread_join (__threadid, __value_ptr);
10753 __gthread_detach (__gthread_t __threadid)
10755 return __gthrw_pthread_detach (__threadid);
10759 __gthread_equal (__gthread_t __t1, __gthread_t __t2)
10761 return __gthrw_pthread_equal (__t1, __t2);
10764 static inline __gthread_t
10765 __gthread_self (
void)
10767 return __gthrw_pthread_self ();
10771 __gthread_yield (
void)
10773 return __gthrw_sched_yield ();
10777 __gthread_once (__gthread_once_t *__once,
void (*__func) (
void))
10779 if (__gthread_active_p ())
10780 return __gthrw_pthread_once (__once, __func);
10786 __gthread_key_create (__gthread_key_t *__key,
void (*__dtor) (
void *))
10788 return __gthrw_pthread_key_create (__key, __dtor);
10792 __gthread_key_delete (__gthread_key_t __key)
10794 return __gthrw_pthread_key_delete (__key);
10797 static inline void *
10798 __gthread_getspecific (__gthread_key_t __key)
10800 return __gthrw_pthread_getspecific (__key);
10804 __gthread_setspecific (__gthread_key_t __key,
const void *__ptr)
10806 return __gthrw_pthread_setspecific (__key, __ptr);
10810 __gthread_mutex_init_function (__gthread_mutex_t *__mutex)
10812 if (__gthread_active_p ())
10813 __gthrw_pthread_mutex_init (__mutex, __null);
10817 __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
10819 if (__gthread_active_p ())
10820 return __gthrw_pthread_mutex_destroy (__mutex);
10826 __gthread_mutex_lock (__gthread_mutex_t *__mutex)
10828 if (__gthread_active_p ())
10829 return __gthrw_pthread_mutex_lock (__mutex);
10835 __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
10837 if (__gthread_active_p ())
10838 return __gthrw_pthread_mutex_trylock (__mutex);
10845 __gthread_mutex_timedlock (__gthread_mutex_t *__mutex,
10848 if (__gthread_active_p ())
10849 return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout);
10856 __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
10858 if (__gthread_active_p ())
10859 return __gthrw_pthread_mutex_unlock (__mutex);
10863 # 807 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
10865 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
10867 return __gthread_mutex_lock (__mutex);
10871 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
10873 return __gthread_mutex_trylock (__mutex);
10878 __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex,
10881 return __gthread_mutex_timedlock (__mutex, __abs_timeout);
10886 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
10888 return __gthread_mutex_unlock (__mutex);
10892 __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
10894 return __gthread_mutex_destroy (__mutex);
10896 # 849 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
10898 __gthread_cond_broadcast (__gthread_cond_t *__cond)
10900 return __gthrw_pthread_cond_broadcast (__cond);
10904 __gthread_cond_signal (__gthread_cond_t *__cond)
10906 return __gthrw_pthread_cond_signal (__cond);
10910 __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex)
10912 return __gthrw_pthread_cond_wait (__cond, __mutex);
10916 __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex,
10919 return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout);
10923 __gthread_cond_wait_recursive (__gthread_cond_t *__cond,
10924 __gthread_recursive_mutex_t *__mutex)
10926 return __gthread_cond_wait (__cond, __mutex);
10930 __gthread_cond_destroy (__gthread_cond_t* __cond)
10932 return __gthrw_pthread_cond_destroy (__cond);
10934 # 149 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr.h" 2 3
10937 #pragma GCC visibility pop
10938 # 36 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/atomicity.h" 2 3
10939 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/atomic_word.h" 1 3
10940 # 32 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/atomic_word.h" 3
10941 typedef int _Atomic_word;
10942 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/atomicity.h" 2 3
10944 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
10953 static inline _Atomic_word
10954 __exchange_and_add(
volatile _Atomic_word* __mem,
int __val)
10955 {
return __atomic_fetch_add(__mem, __val, 4); }
10958 __atomic_add(
volatile _Atomic_word* __mem,
int __val)
10959 { __atomic_fetch_add(__mem, __val, 4); }
10960 # 64 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/atomicity.h" 3
10961 static inline _Atomic_word
10962 __exchange_and_add_single(_Atomic_word* __mem,
int __val)
10964 _Atomic_word __result = *__mem;
10970 __atomic_add_single(_Atomic_word* __mem,
int __val)
10971 { *__mem += __val; }
10973 static inline _Atomic_word
10974 __attribute__ ((__unused__))
10975 __exchange_and_add_dispatch(_Atomic_word* __mem,
int __val)
10978 if (__gthread_active_p())
10979 return __exchange_and_add(__mem, __val);
10981 return __exchange_and_add_single(__mem, __val);
10988 __attribute__ ((__unused__))
10989 __atomic_add_dispatch(_Atomic_word* __mem,
int __val)
10992 if (__gthread_active_p())
10993 __atomic_add(__mem, __val);
10995 __atomic_add_single(__mem, __val);
11003 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 2 3
11006 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/initializer_list" 1 3
11007 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/initializer_list" 3
11013 #pragma GCC visibility push(default)
11021 class initializer_list
11024 typedef _E value_type;
11025 typedef const _E& reference;
11026 typedef const _E& const_reference;
11027 typedef size_t size_type;
11028 typedef const _E* iterator;
11029 typedef const _E* const_iterator;
11036 constexpr initializer_list(const_iterator __a, size_type __l)
11037 : _M_array(__a), _M_len(__l) { }
11040 constexpr initializer_list() noexcept
11041 : _M_array(0), _M_len(0) { }
11044 constexpr size_type
11045 size() const noexcept {
return _M_len; }
11048 constexpr const_iterator
11049 begin() const noexcept {
return _M_array; }
11052 constexpr const_iterator
11053 end() const noexcept {
return begin() + size(); }
11061 template<
class _Tp>
11062 constexpr
const _Tp*
11063 begin(initializer_list<_Tp> __ils) noexcept
11064 {
return __ils.begin(); }
11071 template<
class _Tp>
11072 constexpr
const _Tp*
11073 end(initializer_list<_Tp> __ils) noexcept
11074 {
return __ils.end(); }
11077 #pragma GCC visibility pop
11078 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 2 3
11081 namespace std __attribute__ ((__visibility__ ("default")))
11083 # 111 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11084 template<
typename _CharT,
typename _Traits,
typename _Alloc>
11087 typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type;
11091 typedef _Traits traits_type;
11092 typedef typename _Traits::char_type value_type;
11093 typedef _Alloc allocator_type;
11094 typedef typename _CharT_alloc_type::size_type size_type;
11095 typedef typename _CharT_alloc_type::difference_type difference_type;
11096 typedef typename _CharT_alloc_type::reference reference;
11097 typedef typename _CharT_alloc_type::const_reference const_reference;
11098 typedef typename _CharT_alloc_type::pointer pointer;
11099 typedef typename _CharT_alloc_type::const_pointer const_pointer;
11100 typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator;
11101 typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>
11103 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
11104 typedef std::reverse_iterator<iterator> reverse_iterator;
11107 # 148 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11110 size_type _M_length;
11111 size_type _M_capacity;
11112 _Atomic_word _M_refcount;
11115 struct _Rep : _Rep_base
11118 typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc;
11119 # 173 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11120 static const size_type _S_max_size;
11121 static const _CharT _S_terminal;
11125 static size_type _S_empty_rep_storage[];
11128 _S_empty_rep() noexcept
11133 void* __p =
reinterpret_cast<void*
>(&_S_empty_rep_storage);
11134 return *
reinterpret_cast<_Rep*
>(__p);
11138 _M_is_leaked() const noexcept
11139 {
return this->_M_refcount < 0; }
11142 _M_is_shared() const noexcept
11143 {
return this->_M_refcount > 0; }
11146 _M_set_leaked() noexcept
11147 { this->_M_refcount = -1; }
11150 _M_set_sharable() noexcept
11151 { this->_M_refcount = 0; }
11154 _M_set_length_and_sharable(size_type __n) noexcept
11157 if (__builtin_expect(
this != &_S_empty_rep(),
false))
11160 this->_M_set_sharable();
11161 this->_M_length = __n;
11162 traits_type::assign(this->_M_refdata()[__n], _S_terminal);
11169 _M_refdata() throw()
11170 {
return reinterpret_cast<_CharT*
>(
this + 1); }
11173 _M_grab(
const _Alloc& __alloc1,
const _Alloc& __alloc2)
11175 return (!_M_is_leaked() && __alloc1 == __alloc2)
11176 ? _M_refcopy() : _M_clone(__alloc1);
11181 _S_create(size_type, size_type,
const _Alloc&);
11184 _M_dispose(
const _Alloc& __a) noexcept
11187 if (__builtin_expect(
this != &_S_empty_rep(),
false))
11192 if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount,
11202 _M_destroy(
const _Alloc&) throw();
11205 _M_refcopy() throw()
11208 if (__builtin_expect(
this != &_S_empty_rep(),
false))
11210 __gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1);
11211 return _M_refdata();
11215 _M_clone(
const _Alloc&, size_type __res = 0);
11219 struct _Alloc_hider : _Alloc
11221 _Alloc_hider(_CharT* __dat,
const _Alloc& __a) noexcept
11222 : _Alloc(__a), _M_p(__dat) { }
11232 static const size_type npos =
static_cast<size_type
>(-1);
11236 mutable _Alloc_hider _M_dataplus;
11239 _M_data() const noexcept
11240 {
return _M_dataplus._M_p; }
11243 _M_data(_CharT* __p) noexcept
11244 {
return (_M_dataplus._M_p = __p); }
11247 _M_rep() const noexcept
11248 {
return &((
reinterpret_cast<_Rep*
> (_M_data()))[-1]); }
11253 _M_ibegin() const noexcept
11254 {
return iterator(_M_data()); }
11257 _M_iend() const noexcept
11258 {
return iterator(_M_data() + this->size()); }
11263 if (!_M_rep()->_M_is_leaked())
11268 _M_check(size_type __pos,
const char* __s)
const
11270 if (__pos > this->size())
11271 __throw_out_of_range_fmt((
"%s: __pos (which is %zu) > " "this->size() (which is %zu)"),
11273 __s, __pos, this->size());
11278 _M_check_length(size_type __n1, size_type __n2,
const char* __s)
const
11280 if (this->max_size() - (this->size() - __n1) < __n2)
11281 __throw_length_error((__s));
11286 _M_limit(size_type __pos, size_type __off)
const noexcept
11288 const bool __testoff = __off < this->size() - __pos;
11289 return __testoff ? __off : this->size() - __pos;
11294 _M_disjunct(
const _CharT* __s)
const noexcept
11296 return (less<const _CharT*>()(__s, _M_data())
11297 || less<const _CharT*>()(_M_data() + this->size(), __s));
11303 _M_copy(_CharT* __d,
const _CharT* __s, size_type __n) noexcept
11306 traits_type::assign(*__d, *__s);
11308 traits_type::copy(__d, __s, __n);
11312 _M_move(_CharT* __d,
const _CharT* __s, size_type __n) noexcept
11315 traits_type::assign(*__d, *__s);
11317 traits_type::move(__d, __s, __n);
11321 _M_assign(_CharT* __d, size_type __n, _CharT __c) noexcept
11324 traits_type::assign(*__d, __c);
11326 traits_type::assign(__d, __n, __c);
11331 template<
class _Iterator>
11333 _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)
11336 for (; __k1 != __k2; ++__k1, ++__p)
11337 traits_type::assign(*__p, *__k1);
11341 _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) noexcept
11342 { _S_copy_chars(__p, __k1.base(), __k2.base()); }
11345 _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2)
11347 { _S_copy_chars(__p, __k1.base(), __k2.base()); }
11350 _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) noexcept
11351 { _M_copy(__p, __k1, __k2 - __k1); }
11354 _S_copy_chars(_CharT* __p,
const _CharT* __k1,
const _CharT* __k2)
11356 { _M_copy(__p, __k1, __k2 - __k1); }
11359 _S_compare(size_type __n1, size_type __n2) noexcept
11361 const difference_type __d = difference_type(__n1 - __n2);
11363 if (__d > __gnu_cxx::__numeric_traits<int>::__max)
11364 return __gnu_cxx::__numeric_traits<int>::__max;
11365 else if (__d < __gnu_cxx::__numeric_traits<int>::__min)
11366 return __gnu_cxx::__numeric_traits<int>::__min;
11372 _M_mutate(size_type __pos, size_type __len1, size_type __len2);
11378 _S_empty_rep() noexcept
11379 {
return _Rep::_S_empty_rep(); }
11391 : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { }
11400 basic_string(
const _Alloc& __a);
11407 basic_string(
const basic_string& __str);
11414 basic_string(
const basic_string& __str, size_type __pos,
11415 size_type __n = npos);
11423 basic_string(
const basic_string& __str, size_type __pos,
11424 size_type __n,
const _Alloc& __a);
11425 # 488 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11426 basic_string(
const _CharT* __s, size_type __n,
11427 const _Alloc& __a = _Alloc());
11433 basic_string(
const _CharT* __s,
const _Alloc& __a = _Alloc());
11440 basic_string(size_type __n, _CharT __c,
const _Alloc& __a = _Alloc());
11441 # 512 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11442 basic_string(basic_string&& __str)
11446 : _M_dataplus(__str._M_dataplus)
11449 __str._M_data(_S_empty_rep()._M_refdata());
11460 basic_string(initializer_list<_CharT> __l,
const _Alloc& __a = _Alloc());
11461 # 539 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11462 template<
class _InputIterator>
11463 basic_string(_InputIterator __beg, _InputIterator __end,
11464 const _Alloc& __a = _Alloc());
11469 ~basic_string() noexcept
11470 { _M_rep()->_M_dispose(this->get_allocator()); }
11477 operator=(
const basic_string& __str)
11478 {
return this->assign(__str); }
11485 operator=(
const _CharT* __s)
11486 {
return this->assign(__s); }
11487 # 572 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11489 operator=(_CharT __c)
11491 this->assign(1, __c);
11494 # 588 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11496 operator=(basic_string&& __str)
11508 operator=(initializer_list<_CharT> __l)
11510 this->assign(__l.begin(), __l.size());
11524 return iterator(_M_data());
11532 begin() const noexcept
11533 {
return const_iterator(_M_data()); }
11543 return iterator(_M_data() + this->size());
11551 end() const noexcept
11552 {
return const_iterator(_M_data() + this->size()); }
11561 {
return reverse_iterator(this->end()); }
11568 const_reverse_iterator
11569 rbegin() const noexcept
11570 {
return const_reverse_iterator(this->end()); }
11579 {
return reverse_iterator(this->begin()); }
11586 const_reverse_iterator
11587 rend() const noexcept
11588 {
return const_reverse_iterator(this->begin()); }
11596 cbegin() const noexcept
11597 {
return const_iterator(this->_M_data()); }
11604 cend() const noexcept
11605 {
return const_iterator(this->_M_data() + this->size()); }
11612 const_reverse_iterator
11613 crbegin() const noexcept
11614 {
return const_reverse_iterator(this->end()); }
11621 const_reverse_iterator
11622 crend() const noexcept
11623 {
return const_reverse_iterator(this->begin()); }
11631 size() const noexcept
11632 {
return _M_rep()->_M_length; }
11637 length() const noexcept
11638 {
return _M_rep()->_M_length; }
11642 max_size() const noexcept
11643 {
return _Rep::_S_max_size; }
11644 # 748 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11646 resize(size_type __n, _CharT __c);
11647 # 761 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11649 resize(size_type __n)
11650 { this->resize(__n, _CharT()); }
11655 shrink_to_fit() noexcept
11657 if (capacity() > size())
11672 capacity() const noexcept
11673 {
return _M_rep()->_M_capacity; }
11674 # 805 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11676 reserve(size_type __res_arg = 0);
11684 { _M_mutate(0, this->size(), 0); }
11691 empty() const noexcept
11692 {
return this->size() == 0; }
11693 # 835 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11695 operator[] (size_type __pos)
const noexcept
11698 return _M_data()[__pos];
11700 # 852 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11702 operator[](size_type __pos)
11710 return _M_data()[__pos];
11712 # 874 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11714 at(size_type __n)
const
11716 if (__n >= this->size())
11717 __throw_out_of_range_fmt((
"basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)"),
11720 __n, this->size());
11721 return _M_data()[__n];
11723 # 896 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11728 __throw_out_of_range_fmt((
"basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)"),
11731 __n, this->size());
11733 return _M_data()[__n];
11743 {
return operator[](0); }
11750 front() const noexcept
11751 {
return operator[](0); }
11759 {
return operator[](this->size() - 1); }
11766 back() const noexcept
11767 {
return operator[](this->size() - 1); }
11768 # 948 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11770 operator+=(
const basic_string& __str)
11771 {
return this->append(__str); }
11779 operator+=(
const _CharT* __s)
11780 {
return this->append(__s); }
11788 operator+=(_CharT __c)
11790 this->push_back(__c);
11801 operator+=(initializer_list<_CharT> __l)
11802 {
return this->append(__l.begin(), __l.size()); }
11811 append(
const basic_string& __str);
11812 # 1005 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11814 append(
const basic_string& __str, size_type __pos, size_type __n);
11823 append(
const _CharT* __s, size_type __n);
11831 append(
const _CharT* __s)
11834 return this->append(__s, traits_type::length(__s));
11836 # 1037 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11838 append(size_type __n, _CharT __c);
11847 append(initializer_list<_CharT> __l)
11848 {
return this->append(__l.begin(), __l.size()); }
11849 # 1059 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11850 template<
class _InputIterator>
11852 append(_InputIterator __first, _InputIterator __last)
11853 {
return this->replace(_M_iend(), _M_iend(), __first, __last); }
11860 push_back(_CharT __c)
11862 const size_type __len = 1 + this->size();
11863 if (__len > this->capacity() || _M_rep()->_M_is_shared())
11864 this->reserve(__len);
11865 traits_type::assign(_M_data()[this->size()], __c);
11866 _M_rep()->_M_set_length_and_sharable(__len);
11875 assign(
const basic_string& __str);
11876 # 1096 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11878 assign(basic_string&& __str)
11883 # 1117 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11885 assign(
const basic_string& __str, size_type __pos, size_type __n)
11886 {
return this->assign(__str._M_data()
11887 + __str._M_check(__pos,
"basic_string::assign"),
11888 __str._M_limit(__pos, __n)); }
11889 # 1133 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11891 assign(
const _CharT* __s, size_type __n);
11892 # 1145 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11894 assign(
const _CharT* __s)
11897 return this->assign(__s, traits_type::length(__s));
11899 # 1161 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11901 assign(size_type __n, _CharT __c)
11902 {
return _M_replace_aux(size_type(0), this->size(), __n, __c); }
11903 # 1173 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11904 template<
class _InputIterator>
11906 assign(_InputIterator __first, _InputIterator __last)
11907 {
return this->replace(_M_ibegin(), _M_iend(), __first, __last); }
11916 assign(initializer_list<_CharT> __l)
11917 {
return this->assign(__l.begin(), __l.size()); }
11918 # 1202 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11920 insert(iterator __p, size_type __n, _CharT __c)
11921 { this->replace(__p, __p, __n, __c); }
11922 # 1218 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11923 template<
class _InputIterator>
11925 insert(iterator __p, _InputIterator __beg, _InputIterator __end)
11926 { this->replace(__p, __p, __beg, __end); }
11927 # 1230 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11929 insert(iterator __p, initializer_list<_CharT> __l)
11932 this->insert(__p - _M_ibegin(), __l.begin(), __l.size());
11934 # 1250 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11936 insert(size_type __pos1,
const basic_string& __str)
11937 {
return this->insert(__pos1, __str, size_type(0), __str.size()); }
11938 # 1272 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11940 insert(size_type __pos1,
const basic_string& __str,
11941 size_type __pos2, size_type __n)
11942 {
return this->insert(__pos1, __str._M_data()
11943 + __str._M_check(__pos2,
"basic_string::insert"),
11944 __str._M_limit(__pos2, __n)); }
11945 # 1295 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11947 insert(size_type __pos,
const _CharT* __s, size_type __n);
11948 # 1313 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11950 insert(size_type __pos,
const _CharT* __s)
11953 return this->insert(__pos, __s, traits_type::length(__s));
11955 # 1336 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11957 insert(size_type __pos, size_type __n, _CharT __c)
11958 {
return _M_replace_aux(_M_check(__pos,
"basic_string::insert"),
11959 size_type(0), __n, __c); }
11960 # 1354 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11962 insert(iterator __p, _CharT __c)
11965 const size_type __pos = __p - _M_ibegin();
11966 _M_replace_aux(__pos, size_type(0), size_type(1), __c);
11967 _M_rep()->_M_set_leaked();
11968 return iterator(_M_data() + __pos);
11970 # 1379 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11972 erase(size_type __pos = 0, size_type __n = npos)
11974 _M_mutate(_M_check(__pos,
"basic_string::erase"),
11975 _M_limit(__pos, __n), size_type(0));
11978 # 1395 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11980 erase(iterator __position)
11984 const size_type __pos = __position - _M_ibegin();
11985 _M_mutate(__pos, size_type(1), size_type(0));
11986 _M_rep()->_M_set_leaked();
11987 return iterator(_M_data() + __pos);
11989 # 1415 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11991 erase(iterator __first, iterator __last);
12001 { erase(size()-1, 1); }
12002 # 1446 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12004 replace(size_type __pos, size_type __n,
const basic_string& __str)
12005 {
return this->replace(__pos, __n, __str._M_data(), __str.size()); }
12006 # 1468 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12008 replace(size_type __pos1, size_type __n1,
const basic_string& __str,
12009 size_type __pos2, size_type __n2)
12010 {
return this->replace(__pos1, __n1, __str._M_data()
12011 + __str._M_check(__pos2,
"basic_string::replace"),
12012 __str._M_limit(__pos2, __n2)); }
12013 # 1493 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12015 replace(size_type __pos, size_type __n1,
const _CharT* __s,
12017 # 1513 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12019 replace(size_type __pos, size_type __n1,
const _CharT* __s)
12022 return this->replace(__pos, __n1, __s, traits_type::length(__s));
12024 # 1537 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12026 replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
12027 {
return _M_replace_aux(_M_check(__pos,
"basic_string::replace"),
12028 _M_limit(__pos, __n1), __n2, __c); }
12029 # 1555 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12031 replace(iterator __i1, iterator __i2,
const basic_string& __str)
12032 {
return this->replace(__i1, __i2, __str._M_data(), __str.size()); }
12033 # 1574 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12035 replace(iterator __i1, iterator __i2,
const _CharT* __s, size_type __n)
12039 return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n);
12041 # 1595 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12043 replace(iterator __i1, iterator __i2,
const _CharT* __s)
12046 return this->replace(__i1, __i2, __s, traits_type::length(__s));
12048 # 1616 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12050 replace(iterator __i1, iterator __i2, size_type __n, _CharT __c)
12054 return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c);
12056 # 1639 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12057 template<
class _InputIterator>
12059 replace(iterator __i1, iterator __i2,
12060 _InputIterator __k1, _InputIterator __k2)
12065 typedef typename std::__is_integer<_InputIterator>::__type _Integral;
12066 return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral());
12072 replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2)
12077 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
12078 __k1, __k2 - __k1);
12082 replace(iterator __i1, iterator __i2,
12083 const _CharT* __k1,
const _CharT* __k2)
12088 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
12089 __k1, __k2 - __k1);
12093 replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2)
12098 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
12099 __k1.base(), __k2 - __k1);
12103 replace(iterator __i1, iterator __i2,
12104 const_iterator __k1, const_iterator __k2)
12109 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
12110 __k1.base(), __k2 - __k1);
12112 # 1710 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12113 basic_string& replace(iterator __i1, iterator __i2,
12114 initializer_list<_CharT> __l)
12115 {
return this->replace(__i1, __i2, __l.begin(), __l.end()); }
12119 template<
class _Integer>
12121 _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n,
12122 _Integer __val, __true_type)
12123 {
return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); }
12125 template<
class _InputIterator>
12127 _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
12128 _InputIterator __k2, __false_type);
12131 _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
12135 _M_replace_safe(size_type __pos1, size_type __n1,
const _CharT* __s,
12140 template<
class _InIterator>
12142 _S_construct_aux(_InIterator __beg, _InIterator __end,
12143 const _Alloc& __a, __false_type)
12145 typedef typename iterator_traits<_InIterator>::iterator_category _Tag;
12146 return _S_construct(__beg, __end, __a, _Tag());
12151 template<
class _Integer>
12153 _S_construct_aux(_Integer __beg, _Integer __end,
12154 const _Alloc& __a, __true_type)
12155 {
return _S_construct_aux_2(static_cast<size_type>(__beg),
12159 _S_construct_aux_2(size_type __req, _CharT __c,
const _Alloc& __a)
12160 {
return _S_construct(__req, __c, __a); }
12162 template<
class _InIterator>
12164 _S_construct(_InIterator __beg, _InIterator __end,
const _Alloc& __a)
12166 typedef typename std::__is_integer<_InIterator>::__type _Integral;
12167 return _S_construct_aux(__beg, __end, __a, _Integral());
12171 template<
class _InIterator>
12173 _S_construct(_InIterator __beg, _InIterator __end,
const _Alloc& __a,
12174 input_iterator_tag);
12178 template<
class _FwdIterator>
12180 _S_construct(_FwdIterator __beg, _FwdIterator __end,
const _Alloc& __a,
12181 forward_iterator_tag);
12184 _S_construct(size_type __req, _CharT __c,
const _Alloc& __a);
12187 # 1797 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12189 copy(_CharT* __s, size_type __n, size_type __pos = 0)
const;
12190 # 1808 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12192 swap(basic_string& __s);
12193 # 1818 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12195 c_str() const noexcept
12196 {
return _M_data(); }
12205 data() const noexcept
12206 {
return _M_data(); }
12212 get_allocator() const noexcept
12213 {
return _M_dataplus; }
12214 # 1851 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12216 find(
const _CharT* __s, size_type __pos, size_type __n)
const;
12217 # 1864 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12219 find(
const basic_string& __str, size_type __pos = 0) const
12221 {
return this->find(__str.data(), __pos, __str.size()); }
12222 # 1879 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12224 find(
const _CharT* __s, size_type __pos = 0)
const
12227 return this->find(__s, __pos, traits_type::length(__s));
12229 # 1896 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12231 find(_CharT __c, size_type __pos = 0) const noexcept;
12232 # 1909 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12234 rfind(
const basic_string& __str, size_type __pos = npos) const
12236 {
return this->rfind(__str.data(), __pos, __str.size()); }
12237 # 1926 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12239 rfind(
const _CharT* __s, size_type __pos, size_type __n)
const;
12240 # 1939 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12242 rfind(
const _CharT* __s, size_type __pos = npos)
const
12245 return this->rfind(__s, __pos, traits_type::length(__s));
12247 # 1956 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12249 rfind(_CharT __c, size_type __pos = npos) const noexcept;
12250 # 1970 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12252 find_first_of(
const basic_string& __str, size_type __pos = 0) const
12254 {
return this->find_first_of(__str.data(), __pos, __str.size()); }
12255 # 1987 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12257 find_first_of(
const _CharT* __s, size_type __pos, size_type __n)
const;
12258 # 2000 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12260 find_first_of(
const _CharT* __s, size_type __pos = 0)
const
12263 return this->find_first_of(__s, __pos, traits_type::length(__s));
12265 # 2019 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12267 find_first_of(_CharT __c, size_type __pos = 0) const noexcept
12268 {
return this->find(__c, __pos); }
12269 # 2034 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12271 find_last_of(
const basic_string& __str, size_type __pos = npos) const
12273 {
return this->find_last_of(__str.data(), __pos, __str.size()); }
12274 # 2051 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12276 find_last_of(
const _CharT* __s, size_type __pos, size_type __n)
const;
12277 # 2064 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12279 find_last_of(
const _CharT* __s, size_type __pos = npos)
const
12282 return this->find_last_of(__s, __pos, traits_type::length(__s));
12284 # 2083 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12286 find_last_of(_CharT __c, size_type __pos = npos) const noexcept
12287 {
return this->rfind(__c, __pos); }
12288 # 2097 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12290 find_first_not_of(
const basic_string& __str, size_type __pos = 0) const
12292 {
return this->find_first_not_of(__str.data(), __pos, __str.size()); }
12293 # 2114 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12295 find_first_not_of(
const _CharT* __s, size_type __pos,
12296 size_type __n)
const;
12297 # 2128 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12299 find_first_not_of(
const _CharT* __s, size_type __pos = 0)
const
12302 return this->find_first_not_of(__s, __pos, traits_type::length(__s));
12304 # 2145 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12306 find_first_not_of(_CharT __c, size_type __pos = 0) const
12308 # 2160 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12310 find_last_not_of(
const basic_string& __str, size_type __pos = npos) const
12312 {
return this->find_last_not_of(__str.data(), __pos, __str.size()); }
12313 # 2177 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12315 find_last_not_of(
const _CharT* __s, size_type __pos,
12316 size_type __n)
const;
12317 # 2191 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12319 find_last_not_of(
const _CharT* __s, size_type __pos = npos)
const
12322 return this->find_last_not_of(__s, __pos, traits_type::length(__s));
12324 # 2208 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12326 find_last_not_of(_CharT __c, size_type __pos = npos) const
12328 # 2224 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12330 substr(size_type __pos = 0, size_type __n = npos)
const
12331 {
return basic_string(*
this,
12332 _M_check(__pos,
"basic_string::substr"), __n); }
12333 # 2243 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12335 compare(
const basic_string& __str)
const
12337 const size_type __size = this->size();
12338 const size_type __osize = __str.size();
12339 const size_type __len = std::min(__size, __osize);
12341 int __r = traits_type::compare(_M_data(), __str.data(), __len);
12343 __r = _S_compare(__size, __osize);
12346 # 2275 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12348 compare(size_type __pos, size_type __n,
const basic_string& __str)
const;
12349 # 2301 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12351 compare(size_type __pos1, size_type __n1,
const basic_string& __str,
12352 size_type __pos2, size_type __n2)
const;
12353 # 2319 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12355 compare(
const _CharT* __s)
const;
12356 # 2343 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12358 compare(size_type __pos, size_type __n1,
const _CharT* __s)
const;
12359 # 2370 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12361 compare(size_type __pos, size_type __n1,
const _CharT* __s,
12362 size_type __n2)
const;
12364 # 2382 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12365 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12366 basic_string<_CharT, _Traits, _Alloc>
12367 operator+(
const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12368 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12370 basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
12371 __str.append(__rhs);
12381 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12382 basic_string<_CharT,_Traits,_Alloc>
12383 operator+(
const _CharT* __lhs,
12384 const basic_string<_CharT,_Traits,_Alloc>& __rhs);
12392 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12393 basic_string<_CharT,_Traits,_Alloc>
12394 operator+(_CharT __lhs,
const basic_string<_CharT,_Traits,_Alloc>& __rhs);
12402 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12403 inline basic_string<_CharT, _Traits, _Alloc>
12404 operator+(
const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12405 const _CharT* __rhs)
12407 basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
12408 __str.append(__rhs);
12418 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12419 inline basic_string<_CharT, _Traits, _Alloc>
12420 operator+(
const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
12422 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
12423 typedef typename __string_type::size_type __size_type;
12424 __string_type __str(__lhs);
12425 __str.append(__size_type(1), __rhs);
12430 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12431 inline basic_string<_CharT, _Traits, _Alloc>
12432 operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
12433 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12434 {
return std::move(__lhs.append(__rhs)); }
12436 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12437 inline basic_string<_CharT, _Traits, _Alloc>
12438 operator+(
const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12439 basic_string<_CharT, _Traits, _Alloc>&& __rhs)
12440 {
return std::move(__rhs.insert(0, __lhs)); }
12442 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12443 inline basic_string<_CharT, _Traits, _Alloc>
12444 operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
12445 basic_string<_CharT, _Traits, _Alloc>&& __rhs)
12447 const auto __size = __lhs.size() + __rhs.size();
12448 const bool __cond = (__size > __lhs.capacity()
12449 && __size <= __rhs.capacity());
12450 return __cond ? std::move(__rhs.insert(0, __lhs))
12451 : std::move(__lhs.append(__rhs));
12454 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12455 inline basic_string<_CharT, _Traits, _Alloc>
12456 operator+(
const _CharT* __lhs,
12457 basic_string<_CharT, _Traits, _Alloc>&& __rhs)
12458 {
return std::move(__rhs.insert(0, __lhs)); }
12460 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12461 inline basic_string<_CharT, _Traits, _Alloc>
12462 operator+(_CharT __lhs,
12463 basic_string<_CharT, _Traits, _Alloc>&& __rhs)
12464 {
return std::move(__rhs.insert(0, 1, __lhs)); }
12466 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12467 inline basic_string<_CharT, _Traits, _Alloc>
12468 operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
12469 const _CharT* __rhs)
12470 {
return std::move(__lhs.append(__rhs)); }
12472 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12473 inline basic_string<_CharT, _Traits, _Alloc>
12474 operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
12476 {
return std::move(__lhs.append(1, __rhs)); }
12477 # 2503 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12478 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12480 operator==(
const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12481 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12482 {
return __lhs.compare(__rhs) == 0; }
12484 template<
typename _CharT>
12486 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
bool>::__type
12487 operator==(
const basic_string<_CharT>& __lhs,
12488 const basic_string<_CharT>& __rhs)
12489 {
return (__lhs.size() == __rhs.size()
12490 && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(),
12499 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12501 operator==(
const _CharT* __lhs,
12502 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12503 {
return __rhs.compare(__lhs) == 0; }
12511 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12513 operator==(
const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12514 const _CharT* __rhs)
12515 {
return __lhs.compare(__rhs) == 0; }
12516 # 2549 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12517 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12519 operator!=(
const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12520 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12521 {
return !(__lhs == __rhs); }
12529 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12531 operator!=(
const _CharT* __lhs,
12532 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12533 {
return !(__lhs == __rhs); }
12541 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12543 operator!=(
const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12544 const _CharT* __rhs)
12545 {
return !(__lhs == __rhs); }
12546 # 2586 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12547 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12549 operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12550 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12551 {
return __lhs.compare(__rhs) < 0; }
12559 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12561 operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12562 const _CharT* __rhs)
12563 {
return __lhs.compare(__rhs) < 0; }
12571 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12573 operator<(
const _CharT* __lhs,
12574 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12575 {
return __rhs.compare(__lhs) > 0; }
12576 # 2623 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12577 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12579 operator>(
const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12580 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12581 {
return __lhs.compare(__rhs) > 0; }
12589 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12591 operator>(
const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12592 const _CharT* __rhs)
12593 {
return __lhs.compare(__rhs) > 0; }
12601 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12603 operator>(
const _CharT* __lhs,
12604 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12605 {
return __rhs.compare(__lhs) < 0; }
12606 # 2660 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12607 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12609 operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12610 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12611 {
return __lhs.compare(__rhs) <= 0; }
12619 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12621 operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12622 const _CharT* __rhs)
12623 {
return __lhs.compare(__rhs) <= 0; }
12631 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12633 operator<=(
const _CharT* __lhs,
12634 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12635 {
return __rhs.compare(__lhs) >= 0; }
12636 # 2697 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12637 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12639 operator>=(
const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12640 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12641 {
return __lhs.compare(__rhs) >= 0; }
12649 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12651 operator>=(
const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12652 const _CharT* __rhs)
12653 {
return __lhs.compare(__rhs) >= 0; }
12661 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12663 operator>=(
const _CharT* __lhs,
12664 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12665 {
return __rhs.compare(__lhs) <= 0; }
12666 # 2734 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12667 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12669 swap(basic_string<_CharT, _Traits, _Alloc>& __lhs,
12670 basic_string<_CharT, _Traits, _Alloc>& __rhs)
12671 { __lhs.swap(__rhs); }
12672 # 2752 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12673 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12674 basic_istream<_CharT, _Traits>&
12675 operator>>(basic_istream<_CharT, _Traits>& __is,
12676 basic_string<_CharT, _Traits, _Alloc>& __str);
12679 basic_istream<char>&
12680 operator>>(basic_istream<char>& __is, basic_string<char>& __str);
12681 # 2770 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12682 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12683 inline basic_ostream<_CharT, _Traits>&
12684 operator<<(basic_ostream<_CharT, _Traits>& __os,
12685 const basic_string<_CharT, _Traits, _Alloc>& __str)
12689 return __ostream_insert(__os, __str.data(), __str.size());
12691 # 2793 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12692 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12693 basic_istream<_CharT, _Traits>&
12694 getline(basic_istream<_CharT, _Traits>& __is,
12695 basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim);
12696 # 2810 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12697 template<
typename _CharT,
typename _Traits,
typename _Alloc>
12698 inline basic_istream<_CharT, _Traits>&
12699 getline(basic_istream<_CharT, _Traits>& __is,
12700 basic_string<_CharT, _Traits, _Alloc>& __str)
12701 {
return getline(__is, __str, __is.widen(
'\n')); }
12704 basic_istream<char>&
12705 getline(basic_istream<char>& __in, basic_string<char>& __str,
12710 basic_istream<wchar_t>&
12711 getline(basic_istream<wchar_t>& __in, basic_string<wchar_t>& __str,
12722 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/string_conversions.h" 1 3
12723 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/string_conversions.h" 3
12732 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 1 3
12733 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
12734 # 72 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
12735 # 1 "/usr/include/stdlib.h" 1 3 4
12736 # 32 "/usr/include/stdlib.h" 3 4
12737 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
12738 # 33 "/usr/include/stdlib.h" 2 3 4
12748 # 1 "/usr/include/bits/waitflags.h" 1 3 4
12749 # 42 "/usr/include/stdlib.h" 2 3 4
12750 # 1 "/usr/include/bits/waitstatus.h" 1 3 4
12751 # 66 "/usr/include/bits/waitstatus.h" 3 4
12758 unsigned int __w_termsig:7;
12759 unsigned int __w_coredump:1;
12760 unsigned int __w_retcode:8;
12769 } __wait_terminated;
12773 unsigned int __w_stopval:8;
12774 unsigned int __w_stopsig:8;
12784 # 43 "/usr/include/stdlib.h" 2 3 4
12785 # 97 "/usr/include/stdlib.h" 3 4
12806 __extension__
typedef struct
12808 long long int quot;
12811 # 139 "/usr/include/stdlib.h" 3 4
12812 extern size_t __ctype_get_mb_cur_max (
void) throw () ;
12817 extern
double atof (const
char *__nptr)
12818 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
12820 extern
int atoi (const
char *__nptr)
12821 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
12823 extern
long int atol (const
char *__nptr)
12824 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
12830 __extension__ extern
long long int atoll (const
char *__nptr)
12831 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
12837 extern
double strtod (const
char *__restrict __nptr,
12838 char **__restrict __endptr)
12839 throw () __attribute__ ((__nonnull__ (1)));
12845 extern
float strtof (const
char *__restrict __nptr,
12846 char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1)));
12848 extern
long double strtold (const
char *__restrict __nptr,
12849 char **__restrict __endptr)
12850 throw () __attribute__ ((__nonnull__ (1)));
12856 extern
long int strtol (const
char *__restrict __nptr,
12857 char **__restrict __endptr,
int __base)
12858 throw () __attribute__ ((__nonnull__ (1)));
12860 extern
unsigned long int strtoul (const
char *__restrict __nptr,
12861 char **__restrict __endptr,
int __base)
12862 throw () __attribute__ ((__nonnull__ (1)));
12868 extern
long long int strtoq (const
char *__restrict __nptr,
12869 char **__restrict __endptr,
int __base)
12870 throw () __attribute__ ((__nonnull__ (1)));
12873 extern
unsigned long long int strtouq (const
char *__restrict __nptr,
12874 char **__restrict __endptr,
int __base)
12875 throw () __attribute__ ((__nonnull__ (1)));
12882 extern
long long int strtoll (const
char *__restrict __nptr,
12883 char **__restrict __endptr,
int __base)
12884 throw () __attribute__ ((__nonnull__ (1)));
12887 extern
unsigned long long int strtoull (const
char *__restrict __nptr,
12888 char **__restrict __endptr,
int __base)
12889 throw () __attribute__ ((__nonnull__ (1)));
12890 # 239 "/usr/include/stdlib.h" 3 4
12891 extern long int strtol_l (
const char *__restrict __nptr,
12892 char **__restrict __endptr,
int __base,
12893 __locale_t __loc)
throw () __attribute__ ((__nonnull__ (1, 4)));
12895 extern unsigned long int strtoul_l (
const char *__restrict __nptr,
12896 char **__restrict __endptr,
12898 throw () __attribute__ ((__nonnull__ (1, 4)));
12901 extern long long int strtoll_l (
const char *__restrict __nptr,
12902 char **__restrict __endptr,
int __base,
12904 throw () __attribute__ ((__nonnull__ (1, 4)));
12907 extern unsigned long long int strtoull_l (
const char *__restrict __nptr,
12908 char **__restrict __endptr,
12910 throw () __attribute__ ((__nonnull__ (1, 4)));
12912 extern double strtod_l (
const char *__restrict __nptr,
12913 char **__restrict __endptr,
__locale_t __loc)
12914 throw () __attribute__ ((__nonnull__ (1, 3)));
12916 extern float strtof_l (
const char *__restrict __nptr,
12917 char **__restrict __endptr,
__locale_t __loc)
12918 throw () __attribute__ ((__nonnull__ (1, 3)));
12920 extern long double strtold_l (
const char *__restrict __nptr,
12921 char **__restrict __endptr,
12923 throw () __attribute__ ((__nonnull__ (1, 3)));
12924 # 305 "/usr/include/stdlib.h" 3 4
12925 extern char *l64a (
long int __n)
throw () ;
12928 extern long int a64l (
const char *__s)
12929 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
12935 # 1 "/usr/include/sys/types.h" 1 3 4
12936 # 27 "/usr/include/sys/types.h" 3 4
12943 typedef __u_char u_char;
12944 typedef __u_short u_short;
12945 typedef __u_int u_int;
12946 typedef __u_long u_long;
12947 typedef __quad_t quad_t;
12948 typedef __u_quad_t u_quad_t;
12954 typedef __loff_t loff_t;
12958 typedef __ino_t ino_t;
12965 typedef __ino64_t ino64_t;
12970 typedef __dev_t dev_t;
12975 typedef __gid_t gid_t;
12980 typedef __mode_t mode_t;
12985 typedef __nlink_t nlink_t;
12990 typedef __uid_t uid_t;
12996 typedef __off_t off_t;
13003 typedef __off64_t off64_t;
13004 # 104 "/usr/include/sys/types.h" 3 4
13005 typedef __id_t id_t;
13010 typedef __ssize_t ssize_t;
13016 typedef __daddr_t daddr_t;
13017 typedef __caddr_t caddr_t;
13023 typedef __key_t key_t;
13024 # 136 "/usr/include/sys/types.h" 3 4
13025 typedef __useconds_t useconds_t;
13029 typedef __suseconds_t suseconds_t;
13036 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
13037 # 147 "/usr/include/sys/types.h" 2 3 4
13041 typedef unsigned long int ulong;
13042 typedef unsigned short int ushort;
13043 typedef unsigned int uint;
13044 # 200 "/usr/include/sys/types.h" 3 4
13045 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
13046 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
13047 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
13048 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
13050 typedef int register_t __attribute__ ((__mode__ (__word__)));
13051 # 219 "/usr/include/sys/types.h" 3 4
13052 # 1 "/usr/include/sys/select.h" 1 3 4
13053 # 30 "/usr/include/sys/select.h" 3 4
13054 # 1 "/usr/include/bits/select.h" 1 3 4
13055 # 22 "/usr/include/bits/select.h" 3 4
13056 # 1 "/usr/include/bits/wordsize.h" 1 3 4
13057 # 23 "/usr/include/bits/select.h" 2 3 4
13058 # 31 "/usr/include/sys/select.h" 2 3 4
13061 # 1 "/usr/include/bits/sigset.h" 1 3 4
13062 # 22 "/usr/include/bits/sigset.h" 3 4
13063 typedef int __sig_atomic_t;
13070 unsigned long int __val[(1024 / (8 *
sizeof (
unsigned long int)))];
13072 # 34 "/usr/include/sys/select.h" 2 3 4
13085 # 1 "/usr/include/bits/time.h" 1 3 4
13086 # 46 "/usr/include/sys/select.h" 2 3 4
13095 typedef long int __fd_mask;
13096 # 64 "/usr/include/sys/select.h" 3 4
13102 __fd_mask fds_bits[1024 / (8 * (int)
sizeof (__fd_mask))];
13115 typedef __fd_mask fd_mask;
13116 # 96 "/usr/include/sys/select.h" 3 4
13118 # 106 "/usr/include/sys/select.h" 3 4
13119 extern int select (
int __nfds,
fd_set *__restrict __readfds,
13120 fd_set *__restrict __writefds,
13121 fd_set *__restrict __exceptfds,
13122 struct timeval *__restrict __timeout);
13123 # 118 "/usr/include/sys/select.h" 3 4
13124 extern int pselect (
int __nfds,
fd_set *__restrict __readfds,
13125 fd_set *__restrict __writefds,
13126 fd_set *__restrict __exceptfds,
13127 const struct timespec *__restrict __timeout,
13129 # 131 "/usr/include/sys/select.h" 3 4
13131 # 220 "/usr/include/sys/types.h" 2 3 4
13134 # 1 "/usr/include/sys/sysmacros.h" 1 3 4
13135 # 24 "/usr/include/sys/sysmacros.h" 3 4
13139 extern unsigned int gnu_dev_major (
unsigned long long int __dev)
13140 throw () __attribute__ ((__const__));
13142 extern unsigned int gnu_dev_minor (
unsigned long long int __dev)
13143 throw () __attribute__ ((__const__));
13145 extern unsigned long long int gnu_dev_makedev (
unsigned int __major,
13146 unsigned int __minor)
13147 throw () __attribute__ ((__const__));
13148 # 58 "/usr/include/sys/sysmacros.h" 3 4
13150 # 223 "/usr/include/sys/types.h" 2 3 4
13156 typedef __blksize_t blksize_t;
13163 typedef __blkcnt_t blkcnt_t;
13167 typedef __fsblkcnt_t fsblkcnt_t;
13171 typedef __fsfilcnt_t fsfilcnt_t;
13172 # 262 "/usr/include/sys/types.h" 3 4
13173 typedef __blkcnt64_t blkcnt64_t;
13174 typedef __fsblkcnt64_t fsblkcnt64_t;
13175 typedef __fsfilcnt64_t fsfilcnt64_t;
13176 # 273 "/usr/include/sys/types.h" 3 4
13178 # 315 "/usr/include/stdlib.h" 2 3 4
13185 extern long int random (
void) throw ();
13188 extern
void srandom (
unsigned int __seed) throw ();
13194 extern
char *initstate (
unsigned int __seed,
char *__statebuf,
13195 size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
13199 extern
char *setstate (
char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
13218 extern int random_r (
struct random_data *__restrict __buf,
13219 int32_t *__restrict __result)
throw () __attribute__ ((__nonnull__ (1, 2)));
13221 extern int srandom_r (
unsigned int __seed,
struct random_data *__buf)
13222 throw () __attribute__ ((__nonnull__ (2)));
13224 extern int initstate_r (
unsigned int __seed,
char *__restrict __statebuf,
13227 throw () __attribute__ ((__nonnull__ (2, 4)));
13229 extern int setstate_r (
char *__restrict __statebuf,
13231 throw () __attribute__ ((__nonnull__ (1, 2)));
13238 extern int rand (
void) throw ();
13240 extern
void srand (
unsigned int __seed) throw ();
13245 extern
int rand_r (
unsigned int *__seed) throw ();
13253 extern
double drand48 (
void) throw ();
13254 extern
double erand48 (
unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
13257 extern
long int lrand48 (
void) throw ();
13258 extern
long int nrand48 (
unsigned short int __xsubi[3])
13259 throw () __attribute__ ((__nonnull__ (1)));
13262 extern
long int mrand48 (
void) throw ();
13263 extern
long int jrand48 (
unsigned short int __xsubi[3])
13264 throw () __attribute__ ((__nonnull__ (1)));
13267 extern
void srand48 (
long int __seedval) throw ();
13268 extern
unsigned short int *seed48 (
unsigned short int __seed16v[3])
13269 throw () __attribute__ ((__nonnull__ (1)));
13270 extern
void lcong48 (
unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1)));
13278 unsigned short int __x[3];
13279 unsigned short int __old_x[3];
13280 unsigned short int __c;
13281 unsigned short int __init;
13282 __extension__
unsigned long long int __a;
13287 extern int drand48_r (
struct drand48_data *__restrict __buffer,
13288 double *__restrict __result)
throw () __attribute__ ((__nonnull__ (1, 2)));
13289 extern int erand48_r (
unsigned short int __xsubi[3],
13291 double *__restrict __result)
throw () __attribute__ ((__nonnull__ (1, 2)));
13294 extern int lrand48_r (
struct drand48_data *__restrict __buffer,
13295 long int *__restrict __result)
13296 throw () __attribute__ ((__nonnull__ (1, 2)));
13297 extern int nrand48_r (
unsigned short int __xsubi[3],
13299 long int *__restrict __result)
13300 throw () __attribute__ ((__nonnull__ (1, 2)));
13303 extern int mrand48_r (
struct drand48_data *__restrict __buffer,
13304 long int *__restrict __result)
13305 throw () __attribute__ ((__nonnull__ (1, 2)));
13306 extern int jrand48_r (
unsigned short int __xsubi[3],
13308 long int *__restrict __result)
13309 throw () __attribute__ ((__nonnull__ (1, 2)));
13312 extern int srand48_r (
long int __seedval,
struct drand48_data *__buffer)
13313 throw () __attribute__ ((__nonnull__ (2)));
13315 extern int seed48_r (
unsigned short int __seed16v[3],
13316 struct drand48_data *__buffer)
throw () __attribute__ ((__nonnull__ (1, 2)));
13318 extern int lcong48_r (
unsigned short int __param[7],
13320 throw () __attribute__ ((__nonnull__ (1, 2)));
13321 # 466 "/usr/include/stdlib.h" 3 4
13322 extern void *malloc (
size_t __size)
throw () __attribute__ ((__malloc__)) ;
13324 extern void *calloc (
size_t __nmemb,
size_t __size)
13325 throw () __attribute__ ((__malloc__)) ;
13326 # 480 "/usr/include/stdlib.h" 3 4
13327 extern void *realloc (
void *__ptr,
size_t __size)
13328 throw () __attribute__ ((__warn_unused_result__));
13330 extern void free (
void *__ptr)
throw ();
13335 extern void cfree (
void *__ptr)
throw ();
13340 # 1 "/usr/include/alloca.h" 1 3 4
13341 # 24 "/usr/include/alloca.h" 3 4
13342 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
13343 # 25 "/usr/include/alloca.h" 2 3 4
13351 extern void *alloca (
size_t __size)
throw ();
13358 # 493 "/usr/include/stdlib.h" 2 3 4
13364 extern void *valloc (
size_t __size)
throw () __attribute__ ((__malloc__)) ;
13369 extern int posix_memalign (
void **__memptr,
size_t __alignment,
size_t __size)
13370 throw () __attribute__ ((__nonnull__ (1))) ;
13375 extern void *aligned_alloc (
size_t __alignment,
size_t __size)
13376 throw () __attribute__ ((__malloc__)) ;
13381 extern void abort (
void) throw () __attribute__ ((__noreturn__));
13385 extern
int atexit (
void (*__func) (
void)) throw () __attribute__ ((__nonnull__ (1)));
13390 extern "C++"
int at_quick_exit (
void (*__func) (
void))
13391 throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1)));
13392 # 535 "/usr/include/stdlib.h" 3 4
13393 extern int on_exit (
void (*__func) (
int __status,
void *__arg),
void *__arg)
13394 throw () __attribute__ ((__nonnull__ (1)));
13401 extern void exit (
int __status)
throw () __attribute__ ((__noreturn__));
13407 extern void quick_exit (
int __status)
throw () __attribute__ ((__noreturn__));
13415 extern void _Exit (
int __status)
throw () __attribute__ ((__noreturn__));
13422 extern char *getenv (
const char *__name)
throw () __attribute__ ((__nonnull__ (1))) ;
13428 extern char *secure_getenv (
const char *__name)
13429 throw () __attribute__ ((__nonnull__ (1))) ;
13436 extern int putenv (
char *__string)
throw () __attribute__ ((__nonnull__ (1)));
13442 extern int setenv (
const char *__name,
const char *__value,
int __replace)
13443 throw () __attribute__ ((__nonnull__ (2)));
13446 extern int unsetenv (
const char *__name)
throw () __attribute__ ((__nonnull__ (1)));
13453 extern int clearenv (
void) throw ();
13454 # 606 "/usr/include/stdlib.h" 3 4
13455 extern char *mktemp (
char *__template)
throw () __attribute__ ((__nonnull__ (1)));
13456 # 620 "/usr/include/stdlib.h" 3 4
13457 extern int mkstemp (
char *__template) __attribute__ ((__nonnull__ (1))) ;
13458 # 630 "/usr/include/stdlib.h" 3 4
13459 extern int mkstemp64 (
char *__template) __attribute__ ((__nonnull__ (1))) ;
13460 # 642 "/usr/include/stdlib.h" 3 4
13461 extern int mkstemps (
char *__template,
int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
13462 # 652 "/usr/include/stdlib.h" 3 4
13463 extern int mkstemps64 (
char *__template,
int __suffixlen)
13464 __attribute__ ((__nonnull__ (1))) ;
13465 # 663 "/usr/include/stdlib.h" 3 4
13466 extern char *mkdtemp (
char *__template)
throw () __attribute__ ((__nonnull__ (1))) ;
13467 # 674 "/usr/include/stdlib.h" 3 4
13468 extern int mkostemp (
char *__template,
int __flags) __attribute__ ((__nonnull__ (1))) ;
13469 # 684 "/usr/include/stdlib.h" 3 4
13470 extern int mkostemp64 (
char *__template,
int __flags) __attribute__ ((__nonnull__ (1))) ;
13471 # 694 "/usr/include/stdlib.h" 3 4
13472 extern int mkostemps (
char *__template,
int __suffixlen,
int __flags)
13473 __attribute__ ((__nonnull__ (1))) ;
13474 # 706 "/usr/include/stdlib.h" 3 4
13475 extern int mkostemps64 (
char *__template,
int __suffixlen,
int __flags)
13476 __attribute__ ((__nonnull__ (1))) ;
13477 # 717 "/usr/include/stdlib.h" 3 4
13478 extern int system (
const char *__command) ;
13485 extern char *canonicalize_file_name (
const char *__name)
13486 throw () __attribute__ ((__nonnull__ (1))) ;
13487 # 734 "/usr/include/stdlib.h" 3 4
13488 extern char *realpath (
const char *__restrict __name,
13489 char *__restrict __resolved)
throw () ;
13496 typedef int (*__compar_fn_t) (
const void *,
const void *);
13499 typedef __compar_fn_t comparison_fn_t;
13503 typedef int (*__compar_d_fn_t) (
const void *,
const void *,
void *);
13509 extern void *bsearch (
const void *__key,
const void *__base,
13510 size_t __nmemb,
size_t __size, __compar_fn_t __compar)
13511 __attribute__ ((__nonnull__ (1, 2, 5))) ;
13519 extern void qsort (
void *__base,
size_t __nmemb,
size_t __size,
13520 __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
13522 extern void qsort_r (
void *__base,
size_t __nmemb,
size_t __size,
13523 __compar_d_fn_t __compar,
void *__arg)
13524 __attribute__ ((__nonnull__ (1, 4)));
13529 extern int abs (
int __x)
throw () __attribute__ ((__const__)) ;
13530 extern long int labs (
long int __x)
throw () __attribute__ ((__const__)) ;
13534 __extension__
extern long long int llabs (
long long int __x)
13535 throw () __attribute__ ((__const__)) ;
13543 extern div_t div (
int __numer,
int __denom)
13544 throw () __attribute__ ((__const__)) ;
13545 extern ldiv_t ldiv (
long int __numer,
long int __denom)
13546 throw () __attribute__ ((__const__)) ;
13551 __extension__
extern lldiv_t lldiv (
long long int __numer,
13552 long long int __denom)
13553 throw () __attribute__ ((__const__)) ;
13554 # 812 "/usr/include/stdlib.h" 3 4
13555 extern char *ecvt (
double __value,
int __ndigit,
int *__restrict __decpt,
13556 int *__restrict __sign)
throw () __attribute__ ((__nonnull__ (3, 4))) ;
13561 extern char *fcvt (
double __value,
int __ndigit,
int *__restrict __decpt,
13562 int *__restrict __sign)
throw () __attribute__ ((__nonnull__ (3, 4))) ;
13567 extern char *gcvt (
double __value,
int __ndigit,
char *__buf)
13568 throw () __attribute__ ((__nonnull__ (3))) ;
13573 extern char *qecvt (
long double __value,
int __ndigit,
13574 int *__restrict __decpt,
int *__restrict __sign)
13575 throw () __attribute__ ((__nonnull__ (3, 4))) ;
13576 extern char *qfcvt (
long double __value,
int __ndigit,
13577 int *__restrict __decpt,
int *__restrict __sign)
13578 throw () __attribute__ ((__nonnull__ (3, 4))) ;
13579 extern char *qgcvt (
long double __value,
int __ndigit,
char *__buf)
13580 throw () __attribute__ ((__nonnull__ (3))) ;
13585 extern int ecvt_r (
double __value,
int __ndigit,
int *__restrict __decpt,
13586 int *__restrict __sign,
char *__restrict __buf,
13587 size_t __len)
throw () __attribute__ ((__nonnull__ (3, 4, 5)));
13588 extern int fcvt_r (
double __value,
int __ndigit,
int *__restrict __decpt,
13589 int *__restrict __sign,
char *__restrict __buf,
13590 size_t __len)
throw () __attribute__ ((__nonnull__ (3, 4, 5)));
13592 extern int qecvt_r (
long double __value,
int __ndigit,
13593 int *__restrict __decpt,
int *__restrict __sign,
13594 char *__restrict __buf,
size_t __len)
13595 throw () __attribute__ ((__nonnull__ (3, 4, 5)));
13596 extern int qfcvt_r (
long double __value,
int __ndigit,
13597 int *__restrict __decpt,
int *__restrict __sign,
13598 char *__restrict __buf,
size_t __len)
13599 throw () __attribute__ ((__nonnull__ (3, 4, 5)));
13606 extern int mblen (
const char *__s,
size_t __n)
throw ();
13609 extern int mbtowc (
wchar_t *__restrict __pwc,
13610 const char *__restrict __s,
size_t __n)
throw ();
13613 extern int wctomb (
char *__s,
wchar_t __wchar)
throw ();
13617 extern size_t mbstowcs (
wchar_t *__restrict __pwcs,
13618 const char *__restrict __s,
size_t __n)
throw ();
13620 extern size_t wcstombs (
char *__restrict __s,
13621 const wchar_t *__restrict __pwcs,
size_t __n)
13623 # 888 "/usr/include/stdlib.h" 3 4
13624 extern int rpmatch (
const char *__response)
throw () __attribute__ ((__nonnull__ (1))) ;
13625 # 899 "/usr/include/stdlib.h" 3 4
13626 extern int getsubopt (
char **__restrict __optionp,
13627 char *
const *__restrict __tokens,
13628 char **__restrict __valuep)
13629 throw () __attribute__ ((__nonnull__ (1, 2, 3))) ;
13635 extern void setkey (
const char *__key)
throw () __attribute__ ((__nonnull__ (1)));
13643 extern int posix_openpt (
int __oflag) ;
13651 extern int grantpt (
int __fd)
throw ();
13655 extern int unlockpt (
int __fd)
throw ();
13660 extern char *ptsname (
int __fd)
throw () ;
13667 extern int ptsname_r (
int __fd,
char *__buf,
size_t __buflen)
13668 throw () __attribute__ ((__nonnull__ (2)));
13671 extern int getpt (
void);
13678 extern int getloadavg (
double __loadavg[],
int __nelem)
13679 throw () __attribute__ ((__nonnull__ (1)));
13683 # 1 "/usr/include/bits/stdlib-float.h" 1 3 4
13684 # 956 "/usr/include/stdlib.h" 2 3 4
13685 # 968 "/usr/include/stdlib.h" 3 4
13687 # 73 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 2 3
13688 # 114 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
13689 namespace std __attribute__ ((__visibility__ ("default")))
13701 using ::at_quick_exit;
13724 using ::quick_exit;
13741 abs(
long __i) {
return __builtin_labs(__i); }
13744 div(
long __i,
long __j) {
return ldiv(__i, __j); }
13749 abs(
long long __x) {
return __builtin_llabs (__x); }
13750 # 183 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
13752 # 196 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
13753 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
13771 div(
long long __n,
long long __d)
13772 {
lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d;
return __q; }
13775 # 228 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
13789 using ::__gnu_cxx::lldiv_t;
13791 using ::__gnu_cxx::_Exit;
13793 using ::__gnu_cxx::llabs;
13794 using ::__gnu_cxx::div;
13795 using ::__gnu_cxx::lldiv;
13797 using ::__gnu_cxx::atoll;
13798 using ::__gnu_cxx::strtof;
13799 using ::__gnu_cxx::strtoll;
13800 using ::__gnu_cxx::strtoull;
13801 using ::__gnu_cxx::strtold;
13803 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/string_conversions.h" 2 3
13804 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 1 3
13805 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 3
13810 # 1 "/usr/include/wchar.h" 1 3 4
13811 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 2 3
13812 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/string_conversions.h" 2 3
13813 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdio" 1 3
13814 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdio" 3
13817 # 1 "/usr/include/stdio.h" 1 3 4
13818 # 29 "/usr/include/stdio.h" 3 4
13824 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
13825 # 34 "/usr/include/stdio.h" 2 3 4
13826 # 74 "/usr/include/stdio.h" 3 4
13827 # 1 "/usr/include/libio.h" 1 3 4
13828 # 31 "/usr/include/libio.h" 3 4
13829 # 1 "/usr/include/_G_config.h" 1 3 4
13830 # 15 "/usr/include/_G_config.h" 3 4
13831 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
13832 # 16 "/usr/include/_G_config.h" 2 3 4
13837 # 1 "/usr/include/wchar.h" 1 3 4
13838 # 21 "/usr/include/_G_config.h" 2 3 4
13849 # 32 "/usr/include/libio.h" 2 3 4
13850 # 144 "/usr/include/libio.h" 3 4
13851 struct _IO_jump_t;
struct _IO_FILE;
13852 # 154 "/usr/include/libio.h" 3 4
13853 typedef void _IO_lock_t;
13866 # 177 "/usr/include/libio.h" 3 4
13870 enum __codecvt_result
13877 # 245 "/usr/include/libio.h" 3 4
13884 char* _IO_read_ptr;
13885 char* _IO_read_end;
13886 char* _IO_read_base;
13887 char* _IO_write_base;
13888 char* _IO_write_ptr;
13889 char* _IO_write_end;
13890 char* _IO_buf_base;
13893 char *_IO_save_base;
13894 char *_IO_backup_base;
13895 char *_IO_save_end;
13907 __off_t _old_offset;
13911 unsigned short _cur_column;
13912 signed char _vtable_offset;
13918 # 293 "/usr/include/libio.h" 3 4
13920 # 302 "/usr/include/libio.h" 3 4
13929 char _unused2[15 *
sizeof (int) - 4 *
sizeof (
void *) -
sizeof (size_t)];
13937 struct _IO_FILE_plus;
13939 extern struct _IO_FILE_plus _IO_2_1_stdin_;
13940 extern struct _IO_FILE_plus _IO_2_1_stdout_;
13941 extern struct _IO_FILE_plus _IO_2_1_stderr_;
13942 # 338 "/usr/include/libio.h" 3 4
13943 typedef __ssize_t __io_read_fn (
void *__cookie,
char *__buf,
size_t __nbytes);
13951 typedef __ssize_t __io_write_fn (
void *__cookie,
const char *__buf,
13960 typedef int __io_seek_fn (
void *__cookie, __off64_t *__pos,
int __w);
13963 typedef int __io_close_fn (
void *__cookie);
13968 typedef __io_read_fn cookie_read_function_t;
13969 typedef __io_write_fn cookie_write_function_t;
13970 typedef __io_seek_fn cookie_seek_function_t;
13971 typedef __io_close_fn cookie_close_function_t;
13976 __io_read_fn *read;
13977 __io_write_fn *write;
13978 __io_seek_fn *seek;
13979 __io_close_fn *close;
13983 struct _IO_cookie_file;
13986 extern void _IO_cookie_init (
struct _IO_cookie_file *__cfile,
int __read_write,
13995 extern int __underflow (
_IO_FILE *);
13997 extern int __overflow (
_IO_FILE *,
int);
13998 # 434 "/usr/include/libio.h" 3 4
13999 extern int _IO_getc (
_IO_FILE *__fp);
14000 extern int _IO_putc (
int __c,
_IO_FILE *__fp);
14001 extern int _IO_feof (
_IO_FILE *__fp)
throw ();
14002 extern int _IO_ferror (
_IO_FILE *__fp)
throw ();
14004 extern int _IO_peekc_locked (
_IO_FILE *__fp);
14010 extern void _IO_flockfile (
_IO_FILE *) throw ();
14011 extern
void _IO_funlockfile (
_IO_FILE *) throw ();
14012 extern
int _IO_ftrylockfile (
_IO_FILE *) throw ();
14013 # 464 "/usr/include/libio.h" 3 4
14014 extern int _IO_vfscanf (
_IO_FILE * __restrict,
const char * __restrict,
14015 __gnuc_va_list,
int *__restrict);
14016 extern int _IO_vfprintf (
_IO_FILE *__restrict,
const char *__restrict,
14018 extern __ssize_t _IO_padn (
_IO_FILE *,
int, __ssize_t);
14019 extern size_t _IO_sgetn (
_IO_FILE *,
void *,
size_t);
14021 extern __off64_t _IO_seekoff (
_IO_FILE *, __off64_t,
int,
int);
14022 extern __off64_t _IO_seekpos (
_IO_FILE *, __off64_t,
int);
14024 extern void _IO_free_backup_area (
_IO_FILE *) throw ();
14025 # 526 "/usr/include/libio.h" 3 4
14027 # 75 "/usr/include/stdio.h" 2 3 4
14032 typedef __gnuc_va_list va_list;
14033 # 110 "/usr/include/stdio.h" 3 4
14041 # 164 "/usr/include/stdio.h" 3 4
14042 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
14043 # 165 "/usr/include/stdio.h" 2 3 4
14057 extern int remove (
const char *__filename)
throw ();
14059 extern int rename (
const char *__old,
const char *__new)
throw ();
14064 extern int renameat (
int __oldfd,
const char *__old,
int __newfd,
14065 const char *__new)
throw ();
14066 # 195 "/usr/include/stdio.h" 3 4
14067 extern FILE *tmpfile (
void) ;
14068 # 205 "/usr/include/stdio.h" 3 4
14069 extern FILE *tmpfile64 (
void) ;
14073 extern char *tmpnam (
char *__s)
throw () ;
14079 extern char *tmpnam_r (
char *__s)
throw () ;
14080 # 227 "/usr/include/stdio.h" 3 4
14081 extern char *tempnam (
const char *__dir,
const char *__pfx)
14082 throw () __attribute__ ((__malloc__)) ;
14083 # 237 "/usr/include/stdio.h" 3 4
14084 extern int fclose (
FILE *__stream);
14089 extern int fflush (
FILE *__stream);
14090 # 252 "/usr/include/stdio.h" 3 4
14091 extern int fflush_unlocked (
FILE *__stream);
14092 # 262 "/usr/include/stdio.h" 3 4
14093 extern int fcloseall (
void);
14094 # 272 "/usr/include/stdio.h" 3 4
14095 extern FILE *fopen (
const char *__restrict __filename,
14096 const char *__restrict __modes) ;
14101 extern FILE *freopen (
const char *__restrict __filename,
14102 const char *__restrict __modes,
14103 FILE *__restrict __stream) ;
14104 # 297 "/usr/include/stdio.h" 3 4
14105 extern FILE *fopen64 (
const char *__restrict __filename,
14106 const char *__restrict __modes) ;
14107 extern FILE *freopen64 (
const char *__restrict __filename,
14108 const char *__restrict __modes,
14109 FILE *__restrict __stream) ;
14114 extern FILE *fdopen (
int __fd,
const char *__modes)
throw () ;
14120 extern FILE *fopencookie (
void *__restrict __magic_cookie,
14121 const char *__restrict __modes,
14127 extern FILE *fmemopen (
void *__s,
size_t __len,
const char *__modes)
14133 extern FILE *open_memstream (
char **__bufloc,
size_t *__sizeloc)
throw () ;
14140 extern void setbuf (
FILE *__restrict __stream,
char *__restrict __buf)
throw ();
14144 extern int setvbuf (
FILE *__restrict __stream,
char *__restrict __buf,
14145 int __modes,
size_t __n)
throw ();
14151 extern void setbuffer (
FILE *__restrict __stream,
char *__restrict __buf,
14152 size_t __size)
throw ();
14155 extern void setlinebuf (
FILE *__stream)
throw ();
14156 # 356 "/usr/include/stdio.h" 3 4
14157 extern int fprintf (
FILE *__restrict __stream,
14158 const char *__restrict __format, ...);
14163 extern int printf (
const char *__restrict __format, ...);
14165 extern int sprintf (
char *__restrict __s,
14166 const char *__restrict __format, ...) throw ();
14172 extern
int vfprintf (
FILE *__restrict __s, const
char *__restrict __format,
14173 __gnuc_va_list __arg);
14178 extern
int vprintf (const
char *__restrict __format, __gnuc_va_list __arg);
14180 extern
int vsprintf (
char *__restrict __s, const
char *__restrict __format,
14181 __gnuc_va_list __arg) throw ();
14187 extern
int snprintf (
char *__restrict __s,
size_t __maxlen,
14188 const
char *__restrict __format, ...)
14189 throw () __attribute__ ((__format__ (__printf__, 3, 4)));
14191 extern
int vsnprintf (
char *__restrict __s,
size_t __maxlen,
14192 const
char *__restrict __format, __gnuc_va_list __arg)
14193 throw () __attribute__ ((__format__ (__printf__, 3, 0)));
14200 extern
int vasprintf (
char **__restrict __ptr, const
char *__restrict __f,
14201 __gnuc_va_list __arg)
14202 throw () __attribute__ ((__format__ (__printf__, 2, 0))) ;
14203 extern
int __asprintf (
char **__restrict __ptr,
14204 const
char *__restrict __fmt, ...)
14205 throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
14206 extern
int asprintf (
char **__restrict __ptr,
14207 const
char *__restrict __fmt, ...)
14208 throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
14213 extern
int vdprintf (
int __fd, const
char *__restrict __fmt,
14214 __gnuc_va_list __arg)
14215 __attribute__ ((__format__ (__printf__, 2, 0)));
14216 extern
int dprintf (
int __fd, const
char *__restrict __fmt, ...)
14217 __attribute__ ((__format__ (__printf__, 2, 3)));
14218 # 425 "/usr/include/stdio.h" 3 4
14219 extern int fscanf (
FILE *__restrict __stream,
14220 const char *__restrict __format, ...) ;
14225 extern int scanf (
const char *__restrict __format, ...) ;
14227 extern int sscanf (
const char *__restrict __s,
14228 const char *__restrict __format, ...) throw ();
14229 # 471 "/usr/include/stdio.h" 3 4
14230 extern int vfscanf (
FILE *__restrict __s,
const char *__restrict __format,
14231 __gnuc_va_list __arg)
14232 __attribute__ ((__format__ (__scanf__, 2, 0))) ;
14238 extern int vscanf (
const char *__restrict __format, __gnuc_va_list __arg)
14239 __attribute__ ((__format__ (__scanf__, 1, 0))) ;
14242 extern int vsscanf (
const char *__restrict __s,
14243 const char *__restrict __format, __gnuc_va_list __arg)
14244 throw () __attribute__ ((__format__ (__scanf__, 2, 0)));
14245 # 531 "/usr/include/stdio.h" 3 4
14246 extern int fgetc (
FILE *__stream);
14247 extern int getc (
FILE *__stream);
14253 extern int getchar (
void);
14254 # 550 "/usr/include/stdio.h" 3 4
14255 extern int getc_unlocked (
FILE *__stream);
14256 extern int getchar_unlocked (
void);
14257 # 561 "/usr/include/stdio.h" 3 4
14258 extern int fgetc_unlocked (
FILE *__stream);
14259 # 573 "/usr/include/stdio.h" 3 4
14260 extern int fputc (
int __c,
FILE *__stream);
14261 extern int putc (
int __c,
FILE *__stream);
14267 extern int putchar (
int __c);
14268 # 594 "/usr/include/stdio.h" 3 4
14269 extern int fputc_unlocked (
int __c,
FILE *__stream);
14277 extern int putc_unlocked (
int __c,
FILE *__stream);
14278 extern int putchar_unlocked (
int __c);
14285 extern int getw (
FILE *__stream);
14288 extern int putw (
int __w,
FILE *__stream);
14289 # 622 "/usr/include/stdio.h" 3 4
14290 extern char *fgets (
char *__restrict __s,
int __n,
FILE *__restrict __stream)
14292 # 638 "/usr/include/stdio.h" 3 4
14293 extern char *gets (
char *__s) __attribute__ ((__deprecated__));
14294 # 649 "/usr/include/stdio.h" 3 4
14295 extern char *fgets_unlocked (
char *__restrict __s,
int __n,
14296 FILE *__restrict __stream) ;
14297 # 665 "/usr/include/stdio.h" 3 4
14298 extern __ssize_t __getdelim (
char **__restrict __lineptr,
14299 size_t *__restrict __n,
int __delimiter,
14300 FILE *__restrict __stream) ;
14301 extern __ssize_t getdelim (
char **__restrict __lineptr,
14302 size_t *__restrict __n,
int __delimiter,
14303 FILE *__restrict __stream) ;
14311 extern __ssize_t getline (
char **__restrict __lineptr,
14312 size_t *__restrict __n,
14313 FILE *__restrict __stream) ;
14314 # 689 "/usr/include/stdio.h" 3 4
14315 extern int fputs (
const char *__restrict __s,
FILE *__restrict __stream);
14321 extern int puts (
const char *__s);
14328 extern int ungetc (
int __c,
FILE *__stream);
14335 extern size_t fread (
void *__restrict __ptr,
size_t __size,
14336 size_t __n,
FILE *__restrict __stream) ;
14341 extern size_t fwrite (
const void *__restrict __ptr,
size_t __size,
14342 size_t __n,
FILE *__restrict __s);
14343 # 726 "/usr/include/stdio.h" 3 4
14344 extern int fputs_unlocked (
const char *__restrict __s,
14345 FILE *__restrict __stream);
14346 # 737 "/usr/include/stdio.h" 3 4
14347 extern size_t fread_unlocked (
void *__restrict __ptr,
size_t __size,
14348 size_t __n,
FILE *__restrict __stream) ;
14349 extern size_t fwrite_unlocked (
const void *__restrict __ptr,
size_t __size,
14350 size_t __n,
FILE *__restrict __stream);
14351 # 749 "/usr/include/stdio.h" 3 4
14352 extern int fseek (
FILE *__stream,
long int __off,
int __whence);
14357 extern long int ftell (
FILE *__stream) ;
14362 extern void rewind (
FILE *__stream);
14363 # 773 "/usr/include/stdio.h" 3 4
14364 extern int fseeko (
FILE *__stream, __off_t __off,
int __whence);
14369 extern __off_t ftello (
FILE *__stream) ;
14370 # 798 "/usr/include/stdio.h" 3 4
14371 extern int fgetpos (
FILE *__restrict __stream, fpos_t *__restrict __pos);
14376 extern int fsetpos (
FILE *__stream,
const fpos_t *__pos);
14377 # 818 "/usr/include/stdio.h" 3 4
14378 extern int fseeko64 (
FILE *__stream, __off64_t __off,
int __whence);
14379 extern __off64_t ftello64 (
FILE *__stream) ;
14380 extern int fgetpos64 (
FILE *__restrict __stream, fpos64_t *__restrict __pos);
14381 extern int fsetpos64 (
FILE *__stream,
const fpos64_t *__pos);
14386 extern void clearerr (
FILE *__stream)
throw ();
14388 extern int feof (
FILE *__stream)
throw () ;
14390 extern int ferror (
FILE *__stream)
throw () ;
14395 extern void clearerr_unlocked (
FILE *__stream)
throw ();
14396 extern int feof_unlocked (
FILE *__stream)
throw () ;
14397 extern int ferror_unlocked (
FILE *__stream)
throw () ;
14398 # 846 "/usr/include/stdio.h" 3 4
14399 extern void perror (
const char *__s);
14407 # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
14408 # 26 "/usr/include/bits/sys_errlist.h" 3 4
14409 extern int sys_nerr;
14410 extern const char *
const sys_errlist[];
14413 extern int _sys_nerr;
14414 extern const char *
const _sys_errlist[];
14415 # 854 "/usr/include/stdio.h" 2 3 4
14420 extern int fileno (
FILE *__stream)
throw () ;
14425 extern int fileno_unlocked (
FILE *__stream)
throw () ;
14426 # 873 "/usr/include/stdio.h" 3 4
14427 extern FILE *popen (
const char *__command,
const char *__modes) ;
14433 extern int pclose (
FILE *__stream);
14439 extern char *ctermid (
char *__s)
throw ();
14445 extern char *cuserid (
char *__s);
14453 extern int obstack_printf (
struct obstack *__restrict __obstack,
14454 const char *__restrict __format, ...)
14455 throw () __attribute__ ((__format__ (__printf__, 2, 3)));
14456 extern
int obstack_vprintf (struct obstack *__restrict __obstack,
14457 const
char *__restrict __format,
14458 __gnuc_va_list __args)
14459 throw () __attribute__ ((__format__ (__printf__, 2, 0)));
14467 extern
void flockfile (
FILE *__stream) throw ();
14471 extern
int ftrylockfile (
FILE *__stream) throw () ;
14474 extern
void funlockfile (
FILE *__stream) throw ();
14475 # 943 "/usr/include/stdio.h" 3 4
14477 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdio" 2 3
14478 # 96 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdio" 3
14531 # 157 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdio" 3
14532 namespace __gnu_cxx
14534 # 175 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdio" 3
14545 using ::__gnu_cxx::snprintf;
14546 using ::__gnu_cxx::vfscanf;
14547 using ::__gnu_cxx::vscanf;
14548 using ::__gnu_cxx::vsnprintf;
14549 using ::__gnu_cxx::vsscanf;
14551 # 44 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/string_conversions.h" 2 3
14552 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cerrno" 1 3
14553 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cerrno" 3
14555 # 1 "/usr/include/errno.h" 1 3 4
14556 # 31 "/usr/include/errno.h" 3 4
14562 # 1 "/usr/include/bits/errno.h" 1 3 4
14563 # 24 "/usr/include/bits/errno.h" 3 4
14564 # 1 "/usr/include/linux/errno.h" 1 3 4
14565 # 1 "/usr/include/asm/errno.h" 1 3 4
14566 # 1 "/usr/include/asm-generic/errno.h" 1 3 4
14570 # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4
14571 # 5 "/usr/include/asm-generic/errno.h" 2 3 4
14572 # 2 "/usr/include/asm/errno.h" 2 3 4
14573 # 2 "/usr/include/linux/errno.h" 2 3 4
14574 # 25 "/usr/include/bits/errno.h" 2 3 4
14575 # 50 "/usr/include/bits/errno.h" 3 4
14576 extern int *__errno_location (
void) throw () __attribute__ ((__const__));
14577 # 36 "/usr/include/errno.h" 2 3 4
14578 # 54 "/usr/include/errno.h" 3 4
14579 extern char *program_invocation_name, *program_invocation_short_name;
14584 # 68 "/usr/include/errno.h" 3 4
14585 typedef int error_t;
14586 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cerrno" 2 3
14587 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/string_conversions.h" 2 3
14589 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
14594 template<
typename _TRet,
typename _Ret = _TRet,
typename _CharT,
14597 __stoa(_TRet (*__convf) (
const _CharT*, _CharT**, _Base...),
14598 const char* __name,
const _CharT* __str, std::size_t* __idx,
14604 (*__errno_location ()) = 0;
14605 const _TRet __tmp = __convf(__str, &__endptr, __base...);
14607 if (__endptr == __str)
14608 std::__throw_invalid_argument(__name);
14609 else if ((*__errno_location ()) == 34
14610 || (std::__are_same<_Ret, int>::__value
14611 && (__tmp < __numeric_traits<int>::__min
14612 || __tmp > __numeric_traits<int>::__max)))
14613 std::__throw_out_of_range(__name);
14618 *__idx = __endptr - __str;
14624 template<
typename _String,
typename _CharT =
typename _String::value_type>
14626 __to_xstring(
int (*__convf) (_CharT*, std::size_t,
const _CharT*,
14627 __builtin_va_list), std::size_t __n,
14628 const _CharT* __fmt, ...)
14632 _CharT* __s =
static_cast<_CharT*
>(__builtin_alloca(
sizeof(_CharT)
14635 __builtin_va_list __args;
14636 __builtin_va_start(__args, __fmt);
14638 const int __len = __convf(__s, __n, __fmt, __args);
14640 __builtin_va_end(__args);
14642 return _String(__s, __s + __len);
14647 # 2835 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 2 3
14649 namespace std __attribute__ ((__visibility__ ("default")))
14655 stoi(
const string& __str,
size_t* __idx = 0,
int __base = 10)
14656 {
return __gnu_cxx::__stoa<long, int>(&std::strtol,
"stoi", __str.c_str(),
14660 stol(
const string& __str,
size_t* __idx = 0,
int __base = 10)
14661 {
return __gnu_cxx::__stoa(&std::strtol,
"stol", __str.c_str(),
14664 inline unsigned long
14665 stoul(
const string& __str,
size_t* __idx = 0,
int __base = 10)
14666 {
return __gnu_cxx::__stoa(&std::strtoul,
"stoul", __str.c_str(),
14670 stoll(
const string& __str,
size_t* __idx = 0,
int __base = 10)
14671 {
return __gnu_cxx::__stoa(&std::strtoll,
"stoll", __str.c_str(),
14674 inline unsigned long long
14675 stoull(
const string& __str,
size_t* __idx = 0,
int __base = 10)
14676 {
return __gnu_cxx::__stoa(&std::strtoull,
"stoull", __str.c_str(),
14681 stof(
const string& __str,
size_t* __idx = 0)
14682 {
return __gnu_cxx::__stoa(&std::strtof,
"stof", __str.c_str(), __idx); }
14685 stod(
const string& __str,
size_t* __idx = 0)
14686 {
return __gnu_cxx::__stoa(&std::strtod,
"stod", __str.c_str(), __idx); }
14689 stold(
const string& __str,
size_t* __idx = 0)
14690 {
return __gnu_cxx::__stoa(&std::strtold,
"stold", __str.c_str(), __idx); }
14696 to_string(
int __val)
14697 {
return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, 4 *
sizeof(int),
14701 to_string(
unsigned __val)
14702 {
return __gnu_cxx::__to_xstring<string>(&std::vsnprintf,
14703 4 *
sizeof(unsigned),
14707 to_string(
long __val)
14708 {
return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, 4 *
sizeof(long),
14712 to_string(
unsigned long __val)
14713 {
return __gnu_cxx::__to_xstring<string>(&std::vsnprintf,
14714 4 *
sizeof(
unsigned long),
14718 to_string(
long long __val)
14719 {
return __gnu_cxx::__to_xstring<string>(&std::vsnprintf,
14720 4 *
sizeof(
long long),
14724 to_string(
unsigned long long __val)
14725 {
return __gnu_cxx::__to_xstring<string>(&std::vsnprintf,
14726 4 *
sizeof(
unsigned long long),
14730 to_string(
float __val)
14733 __gnu_cxx::__numeric_traits<float>::__max_exponent10 + 20;
14734 return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, __n,
14739 to_string(
double __val)
14742 __gnu_cxx::__numeric_traits<double>::__max_exponent10 + 20;
14743 return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, __n,
14748 to_string(
long double __val)
14751 __gnu_cxx::__numeric_traits<long double>::__max_exponent10 + 20;
14752 return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, __n,
14758 stoi(
const wstring& __str,
size_t* __idx = 0,
int __base = 10)
14759 {
return __gnu_cxx::__stoa<long, int>(&std::wcstol,
"stoi", __str.c_str(),
14763 stol(
const wstring& __str,
size_t* __idx = 0,
int __base = 10)
14764 {
return __gnu_cxx::__stoa(&std::wcstol,
"stol", __str.c_str(),
14767 inline unsigned long
14768 stoul(
const wstring& __str,
size_t* __idx = 0,
int __base = 10)
14769 {
return __gnu_cxx::__stoa(&std::wcstoul,
"stoul", __str.c_str(),
14773 stoll(
const wstring& __str,
size_t* __idx = 0,
int __base = 10)
14774 {
return __gnu_cxx::__stoa(&std::wcstoll,
"stoll", __str.c_str(),
14777 inline unsigned long long
14778 stoull(
const wstring& __str,
size_t* __idx = 0,
int __base = 10)
14779 {
return __gnu_cxx::__stoa(&std::wcstoull,
"stoull", __str.c_str(),
14784 stof(
const wstring& __str,
size_t* __idx = 0)
14785 {
return __gnu_cxx::__stoa(&std::wcstof,
"stof", __str.c_str(), __idx); }
14788 stod(
const wstring& __str,
size_t* __idx = 0)
14789 {
return __gnu_cxx::__stoa(&std::wcstod,
"stod", __str.c_str(), __idx); }
14792 stold(
const wstring& __str,
size_t* __idx = 0)
14793 {
return __gnu_cxx::__stoa(&std::wcstold,
"stold", __str.c_str(), __idx); }
14797 to_wstring(
int __val)
14798 {
return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, 4 *
sizeof(int),
14802 to_wstring(
unsigned __val)
14803 {
return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf,
14804 4 *
sizeof(unsigned),
14808 to_wstring(
long __val)
14809 {
return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, 4 *
sizeof(long),
14813 to_wstring(
unsigned long __val)
14814 {
return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf,
14815 4 *
sizeof(
unsigned long),
14819 to_wstring(
long long __val)
14820 {
return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf,
14821 4 *
sizeof(
long long),
14825 to_wstring(
unsigned long long __val)
14826 {
return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf,
14827 4 *
sizeof(
unsigned long long),
14831 to_wstring(
float __val)
14834 __gnu_cxx::__numeric_traits<float>::__max_exponent10 + 20;
14835 return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, __n,
14840 to_wstring(
double __val)
14843 __gnu_cxx::__numeric_traits<double>::__max_exponent10 + 20;
14844 return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, __n,
14849 to_wstring(
long double __val)
14852 __gnu_cxx::__numeric_traits<long double>::__max_exponent10 + 20;
14853 return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, __n,
14866 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functional_hash.h" 1 3
14867 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functional_hash.h" 3
14869 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/hash_bytes.h" 1 3
14870 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/hash_bytes.h" 3
14884 _Hash_bytes(
const void* __ptr,
size_t __len,
size_t __seed);
14891 _Fnv_hash_bytes(
const void* __ptr,
size_t __len,
size_t __seed);
14895 # 36 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functional_hash.h" 2 3
14897 namespace std __attribute__ ((__visibility__ ("default")))
14899 # 49 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functional_hash.h" 3
14900 template<
typename _Result,
typename _Arg>
14903 typedef _Result result_type;
14904 typedef _Arg argument_type;
14908 template<
typename _Tp>
14912 template<
typename _Tp>
14913 struct hash<_Tp*> :
public __hash_base<size_t, _Tp*>
14916 operator()(_Tp* __p)
const noexcept
14917 {
return reinterpret_cast<size_t>(__p); }
14919 # 80 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functional_hash.h" 3
14920 template<>
struct hash<bool> :
public __hash_base<size_t, bool> {
size_t operator()(
bool __val)
const noexcept {
return static_cast<size_t>(__val); } };
14923 template<>
struct hash<char> :
public __hash_base<size_t, char> {
size_t operator()(
char __val)
const noexcept {
return static_cast<size_t>(__val); } };
14926 template<>
struct hash<signed char> :
public __hash_base<size_t, signed char> {
size_t operator()(
signed char __val)
const noexcept {
return static_cast<size_t>(__val); } };
14929 template<>
struct hash<unsigned char> :
public __hash_base<size_t, unsigned char> {
size_t operator()(
unsigned char __val)
const noexcept {
return static_cast<size_t>(__val); } };
14932 template<>
struct hash<wchar_t> :
public __hash_base<size_t, wchar_t> {
size_t operator()(
wchar_t __val)
const noexcept {
return static_cast<size_t>(__val); } };
14935 template<>
struct hash<char16_t> :
public __hash_base<size_t, char16_t> {
size_t operator()(char16_t __val)
const noexcept {
return static_cast<size_t>(__val); } };
14938 template<>
struct hash<char32_t> :
public __hash_base<size_t, char32_t> {
size_t operator()(char32_t __val)
const noexcept {
return static_cast<size_t>(__val); } };
14941 template<>
struct hash<short> :
public __hash_base<size_t, short> {
size_t operator()(
short __val)
const noexcept {
return static_cast<size_t>(__val); } };
14944 template<>
struct hash<int> :
public __hash_base<size_t, int> {
size_t operator()(
int __val)
const noexcept {
return static_cast<size_t>(__val); } };
14947 template<>
struct hash<long> :
public __hash_base<size_t, long> {
size_t operator()(
long __val)
const noexcept {
return static_cast<size_t>(__val); } };
14950 template<>
struct hash<long long> :
public __hash_base<size_t, long long> {
size_t operator()(
long long __val)
const noexcept {
return static_cast<size_t>(__val); } };
14953 template<>
struct hash<unsigned short> :
public __hash_base<size_t, unsigned short> {
size_t operator()(
unsigned short __val)
const noexcept {
return static_cast<size_t>(__val); } };
14956 template<>
struct hash<unsigned int> :
public __hash_base<size_t, unsigned int> {
size_t operator()(
unsigned int __val)
const noexcept {
return static_cast<size_t>(__val); } };
14959 template<>
struct hash<unsigned long> :
public __hash_base<size_t, unsigned long> {
size_t operator()(
unsigned long __val)
const noexcept {
return static_cast<size_t>(__val); } };
14962 template<>
struct hash<unsigned long long> :
public __hash_base<size_t, unsigned long long> {
size_t operator()(
unsigned long long __val)
const noexcept {
return static_cast<size_t>(__val); } };
14969 hash(
const void* __ptr,
size_t __clength,
14970 size_t __seed = static_cast<size_t>(0xc70f6907UL))
14971 {
return _Hash_bytes(__ptr, __clength, __seed); }
14973 template<
typename _Tp>
14975 hash(
const _Tp& __val)
14976 {
return hash(&__val,
sizeof(__val)); }
14978 template<
typename _Tp>
14980 __hash_combine(
const _Tp& __val,
size_t __hash)
14981 {
return hash(&__val,
sizeof(__val), __hash); }
14984 struct _Fnv_hash_impl
14987 hash(
const void* __ptr,
size_t __clength,
14988 size_t __seed = static_cast<size_t>(2166136261UL))
14989 {
return _Fnv_hash_bytes(__ptr, __clength, __seed); }
14991 template<
typename _Tp>
14993 hash(
const _Tp& __val)
14994 {
return hash(&__val,
sizeof(__val)); }
14996 template<
typename _Tp>
14998 __hash_combine(
const _Tp& __val,
size_t __hash)
14999 {
return hash(&__val,
sizeof(__val), __hash); }
15004 struct hash<float> :
public __hash_base<size_t, float>
15007 operator()(
float __val)
const noexcept
15010 return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0;
15016 struct hash<double> :
public __hash_base<size_t, double>
15019 operator()(
double __val)
const noexcept
15022 return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0;
15028 struct hash<long double>
15029 :
public __hash_base<size_t, long double>
15031 __attribute__ ((__pure__)) size_t
15032 operator()(
long double __val) const noexcept;
15041 template<typename _Hash>
15042 struct __is_fast_hash : public std::true_type
15046 struct __is_fast_hash<hash<long double>> :
public std::false_type
15051 # 3053 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 2 3
15053 namespace std __attribute__ ((__visibility__ ("default")))
15062 struct hash<string>
15063 :
public __hash_base<size_t, string>
15066 operator()(
const string& __s)
const noexcept
15067 {
return std::_Hash_impl::hash(__s.data(), __s.length()); }
15071 struct __is_fast_hash<hash<string>> : std::false_type
15077 struct hash<wstring>
15078 :
public __hash_base<size_t, wstring>
15081 operator()(
const wstring& __s)
const noexcept
15082 {
return std::_Hash_impl::hash(__s.data(),
15083 __s.length() *
sizeof(wchar_t)); }
15087 struct __is_fast_hash<hash<wstring>> : std::false_type
15095 struct hash<u16string>
15096 :
public __hash_base<size_t, u16string>
15099 operator()(
const u16string& __s)
const noexcept
15100 {
return std::_Hash_impl::hash(__s.data(),
15101 __s.length() *
sizeof(char16_t)); }
15105 struct __is_fast_hash<hash<u16string>> : std::false_type
15110 struct hash<u32string>
15111 :
public __hash_base<size_t, u32string>
15114 operator()(
const u32string& __s)
const noexcept
15115 {
return std::_Hash_impl::hash(__s.data(),
15116 __s.length() *
sizeof(char32_t)); }
15120 struct __is_fast_hash<hash<u32string>> : std::false_type
15122 # 3158 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
15124 # 53 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
15125 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.tcc" 1 3
15126 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.tcc" 3
15130 namespace std __attribute__ ((__visibility__ ("default")))
15134 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15135 const typename basic_string<_CharT, _Traits, _Alloc>::size_type
15136 basic_string<_CharT, _Traits, _Alloc>::
15137 _Rep::_S_max_size = (((npos -
sizeof(_Rep_base))/
sizeof(_CharT)) - 1) / 4;
15139 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15141 basic_string<_CharT, _Traits, _Alloc>::
15142 _Rep::_S_terminal = _CharT();
15144 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15145 const typename basic_string<_CharT, _Traits, _Alloc>::size_type
15146 basic_string<_CharT, _Traits, _Alloc>::npos;
15150 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15151 typename basic_string<_CharT, _Traits, _Alloc>::size_type
15152 basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[
15153 (
sizeof(_Rep_base) +
sizeof(_CharT) +
sizeof(size_type) - 1) /
15154 sizeof(size_type)];
15160 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15161 template<
typename _InIterator>
15163 basic_string<_CharT, _Traits, _Alloc>::
15164 _S_construct(_InIterator __beg, _InIterator __end,
const _Alloc& __a,
15165 input_iterator_tag)
15168 if (__beg == __end && __a == _Alloc())
15169 return _S_empty_rep()._M_refdata();
15173 size_type __len = 0;
15174 while (__beg != __end && __len <
sizeof(__buf) /
sizeof(_CharT))
15176 __buf[__len++] = *__beg;
15179 _Rep* __r = _Rep::_S_create(__len, size_type(0), __a);
15180 _M_copy(__r->_M_refdata(), __buf, __len);
15183 while (__beg != __end)
15185 if (__len == __r->_M_capacity)
15188 _Rep* __another = _Rep::_S_create(__len + 1, __len, __a);
15189 _M_copy(__another->_M_refdata(), __r->_M_refdata(), __len);
15190 __r->_M_destroy(__a);
15193 __r->_M_refdata()[__len++] = *__beg;
15199 __r->_M_destroy(__a);
15202 __r->_M_set_length_and_sharable(__len);
15203 return __r->_M_refdata();
15206 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15207 template <
typename _InIterator>
15209 basic_string<_CharT, _Traits, _Alloc>::
15210 _S_construct(_InIterator __beg, _InIterator __end,
const _Alloc& __a,
15211 forward_iterator_tag)
15214 if (__beg == __end && __a == _Alloc())
15215 return _S_empty_rep()._M_refdata();
15218 if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end)
15219 __throw_logic_error((
"basic_string::_S_construct null not valid"));
15221 const size_type __dnew =
static_cast<size_type
>(std::distance(__beg,
15224 _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a);
15226 { _S_copy_chars(__r->_M_refdata(), __beg, __end); }
15229 __r->_M_destroy(__a);
15232 __r->_M_set_length_and_sharable(__dnew);
15233 return __r->_M_refdata();
15236 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15238 basic_string<_CharT, _Traits, _Alloc>::
15239 _S_construct(size_type __n, _CharT __c,
const _Alloc& __a)
15242 if (__n == 0 && __a == _Alloc())
15243 return _S_empty_rep()._M_refdata();
15246 _Rep* __r = _Rep::_S_create(__n, size_type(0), __a);
15248 _M_assign(__r->_M_refdata(), __n, __c);
15250 __r->_M_set_length_and_sharable(__n);
15251 return __r->_M_refdata();
15254 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15255 basic_string<_CharT, _Traits, _Alloc>::
15256 basic_string(
const basic_string& __str)
15257 : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(__str.get_allocator()),
15258 __str.get_allocator()),
15259 __str.get_allocator())
15262 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15263 basic_string<_CharT, _Traits, _Alloc>::
15264 basic_string(
const _Alloc& __a)
15265 : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a)
15268 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15269 basic_string<_CharT, _Traits, _Alloc>::
15270 basic_string(
const basic_string& __str, size_type __pos, size_type __n)
15271 : _M_dataplus(_S_construct(__str._M_data()
15272 + __str._M_check(__pos,
15273 "basic_string::basic_string"),
15274 __str._M_data() + __str._M_limit(__pos, __n)
15275 + __pos, _Alloc()), _Alloc())
15278 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15279 basic_string<_CharT, _Traits, _Alloc>::
15280 basic_string(
const basic_string& __str, size_type __pos,
15281 size_type __n,
const _Alloc& __a)
15282 : _M_dataplus(_S_construct(__str._M_data()
15283 + __str._M_check(__pos,
15284 "basic_string::basic_string"),
15285 __str._M_data() + __str._M_limit(__pos, __n)
15286 + __pos, __a), __a)
15290 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15291 basic_string<_CharT, _Traits, _Alloc>::
15292 basic_string(
const _CharT* __s, size_type __n,
const _Alloc& __a)
15293 : _M_dataplus(_S_construct(__s, __s + __n, __a), __a)
15297 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15298 basic_string<_CharT, _Traits, _Alloc>::
15299 basic_string(
const _CharT* __s,
const _Alloc& __a)
15300 : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) :
15301 __s + npos, __a), __a)
15304 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15305 basic_string<_CharT, _Traits, _Alloc>::
15306 basic_string(size_type __n, _CharT __c,
const _Alloc& __a)
15307 : _M_dataplus(_S_construct(__n, __c, __a), __a)
15311 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15312 template<
typename _InputIterator>
15313 basic_string<_CharT, _Traits, _Alloc>::
15314 basic_string(_InputIterator __beg, _InputIterator __end,
const _Alloc& __a)
15315 : _M_dataplus(_S_construct(__beg, __end, __a), __a)
15319 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15320 basic_string<_CharT, _Traits, _Alloc>::
15321 basic_string(initializer_list<_CharT> __l,
const _Alloc& __a)
15322 : _M_dataplus(_S_construct(__l.begin(), __l.end(), __a), __a)
15326 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15327 basic_string<_CharT, _Traits, _Alloc>&
15328 basic_string<_CharT, _Traits, _Alloc>::
15329 assign(
const basic_string& __str)
15331 if (_M_rep() != __str._M_rep())
15334 const allocator_type __a = this->get_allocator();
15335 _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator());
15336 _M_rep()->_M_dispose(__a);
15342 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15343 basic_string<_CharT, _Traits, _Alloc>&
15344 basic_string<_CharT, _Traits, _Alloc>::
15345 assign(
const _CharT* __s, size_type __n)
15348 _M_check_length(this->size(), __n,
"basic_string::assign");
15349 if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
15350 return _M_replace_safe(size_type(0), this->size(), __s, __n);
15354 const size_type __pos = __s - _M_data();
15356 _M_copy(_M_data(), __s, __n);
15358 _M_move(_M_data(), __s, __n);
15359 _M_rep()->_M_set_length_and_sharable(__n);
15364 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15365 basic_string<_CharT, _Traits, _Alloc>&
15366 basic_string<_CharT, _Traits, _Alloc>::
15367 append(size_type __n, _CharT __c)
15371 _M_check_length(size_type(0), __n,
"basic_string::append");
15372 const size_type __len = __n + this->size();
15373 if (__len > this->capacity() || _M_rep()->_M_is_shared())
15374 this->reserve(__len);
15375 _M_assign(_M_data() + this->size(), __n, __c);
15376 _M_rep()->_M_set_length_and_sharable(__len);
15381 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15382 basic_string<_CharT, _Traits, _Alloc>&
15383 basic_string<_CharT, _Traits, _Alloc>::
15384 append(
const _CharT* __s, size_type __n)
15389 _M_check_length(size_type(0), __n,
"basic_string::append");
15390 const size_type __len = __n + this->size();
15391 if (__len > this->capacity() || _M_rep()->_M_is_shared())
15393 if (_M_disjunct(__s))
15394 this->reserve(__len);
15397 const size_type __off = __s - _M_data();
15398 this->reserve(__len);
15399 __s = _M_data() + __off;
15402 _M_copy(_M_data() + this->size(), __s, __n);
15403 _M_rep()->_M_set_length_and_sharable(__len);
15408 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15409 basic_string<_CharT, _Traits, _Alloc>&
15410 basic_string<_CharT, _Traits, _Alloc>::
15411 append(
const basic_string& __str)
15413 const size_type __size = __str.size();
15416 const size_type __len = __size + this->size();
15417 if (__len > this->capacity() || _M_rep()->_M_is_shared())
15418 this->reserve(__len);
15419 _M_copy(_M_data() + this->size(), __str._M_data(), __size);
15420 _M_rep()->_M_set_length_and_sharable(__len);
15425 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15426 basic_string<_CharT, _Traits, _Alloc>&
15427 basic_string<_CharT, _Traits, _Alloc>::
15428 append(
const basic_string& __str, size_type __pos, size_type __n)
15430 __str._M_check(__pos,
"basic_string::append");
15431 __n = __str._M_limit(__pos, __n);
15434 const size_type __len = __n + this->size();
15435 if (__len > this->capacity() || _M_rep()->_M_is_shared())
15436 this->reserve(__len);
15437 _M_copy(_M_data() + this->size(), __str._M_data() + __pos, __n);
15438 _M_rep()->_M_set_length_and_sharable(__len);
15443 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15444 basic_string<_CharT, _Traits, _Alloc>&
15445 basic_string<_CharT, _Traits, _Alloc>::
15446 insert(size_type __pos,
const _CharT* __s, size_type __n)
15449 _M_check(__pos,
"basic_string::insert");
15450 _M_check_length(size_type(0), __n,
"basic_string::insert");
15451 if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
15452 return _M_replace_safe(__pos, size_type(0), __s, __n);
15456 const size_type __off = __s - _M_data();
15457 _M_mutate(__pos, 0, __n);
15458 __s = _M_data() + __off;
15459 _CharT* __p = _M_data() + __pos;
15460 if (__s + __n <= __p)
15461 _M_copy(__p, __s, __n);
15462 else if (__s >= __p)
15463 _M_copy(__p, __s + __n, __n);
15466 const size_type __nleft = __p - __s;
15467 _M_copy(__p, __s, __nleft);
15468 _M_copy(__p + __nleft, __p + __n, __n - __nleft);
15474 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15475 typename basic_string<_CharT, _Traits, _Alloc>::iterator
15476 basic_string<_CharT, _Traits, _Alloc>::
15477 erase(iterator __first, iterator __last)
15485 const size_type __size = __last - __first;
15488 const size_type __pos = __first - _M_ibegin();
15489 _M_mutate(__pos, __size, size_type(0));
15490 _M_rep()->_M_set_leaked();
15491 return iterator(_M_data() + __pos);
15497 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15498 basic_string<_CharT, _Traits, _Alloc>&
15499 basic_string<_CharT, _Traits, _Alloc>::
15500 replace(size_type __pos, size_type __n1,
const _CharT* __s,
15504 _M_check(__pos,
"basic_string::replace");
15505 __n1 = _M_limit(__pos, __n1);
15506 _M_check_length(__n1, __n2,
"basic_string::replace");
15508 if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
15509 return _M_replace_safe(__pos, __n1, __s, __n2);
15510 else if ((__left = __s + __n2 <= _M_data() + __pos)
15511 || _M_data() + __pos + __n1 <= __s)
15514 size_type __off = __s - _M_data();
15515 __left ? __off : (__off += __n2 - __n1);
15516 _M_mutate(__pos, __n1, __n2);
15517 _M_copy(_M_data() + __pos, _M_data() + __off, __n2);
15523 const basic_string __tmp(__s, __n2);
15524 return _M_replace_safe(__pos, __n1, __tmp._M_data(), __n2);
15528 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15530 basic_string<_CharT, _Traits, _Alloc>::_Rep::
15531 _M_destroy(
const _Alloc& __a)
throw ()
15533 const size_type __size =
sizeof(_Rep_base) +
15534 (this->_M_capacity + 1) *
sizeof(_CharT);
15535 _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(
this), __size);
15538 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15540 basic_string<_CharT, _Traits, _Alloc>::
15544 if (_M_rep() == &_S_empty_rep())
15547 if (_M_rep()->_M_is_shared())
15548 _M_mutate(0, 0, 0);
15549 _M_rep()->_M_set_leaked();
15552 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15554 basic_string<_CharT, _Traits, _Alloc>::
15555 _M_mutate(size_type __pos, size_type __len1, size_type __len2)
15557 const size_type __old_size = this->size();
15558 const size_type __new_size = __old_size + __len2 - __len1;
15559 const size_type __how_much = __old_size - __pos - __len1;
15561 if (__new_size > this->capacity() || _M_rep()->_M_is_shared())
15564 const allocator_type __a = get_allocator();
15565 _Rep* __r = _Rep::_S_create(__new_size, this->capacity(), __a);
15568 _M_copy(__r->_M_refdata(), _M_data(), __pos);
15570 _M_copy(__r->_M_refdata() + __pos + __len2,
15571 _M_data() + __pos + __len1, __how_much);
15573 _M_rep()->_M_dispose(__a);
15574 _M_data(__r->_M_refdata());
15576 else if (__how_much && __len1 != __len2)
15579 _M_move(_M_data() + __pos + __len2,
15580 _M_data() + __pos + __len1, __how_much);
15582 _M_rep()->_M_set_length_and_sharable(__new_size);
15585 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15587 basic_string<_CharT, _Traits, _Alloc>::
15588 reserve(size_type __res)
15590 if (__res != this->capacity() || _M_rep()->_M_is_shared())
15593 if (__res < this->size())
15594 __res = this->size();
15595 const allocator_type __a = get_allocator();
15596 _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size());
15597 _M_rep()->_M_dispose(__a);
15602 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15604 basic_string<_CharT, _Traits, _Alloc>::
15605 swap(basic_string& __s)
15607 if (_M_rep()->_M_is_leaked())
15608 _M_rep()->_M_set_sharable();
15609 if (__s._M_rep()->_M_is_leaked())
15610 __s._M_rep()->_M_set_sharable();
15611 if (this->get_allocator() == __s.get_allocator())
15613 _CharT* __tmp = _M_data();
15614 _M_data(__s._M_data());
15615 __s._M_data(__tmp);
15620 const basic_string __tmp1(_M_ibegin(), _M_iend(),
15621 __s.get_allocator());
15622 const basic_string __tmp2(__s._M_ibegin(), __s._M_iend(),
15623 this->get_allocator());
15629 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15630 typename basic_string<_CharT, _Traits, _Alloc>::_Rep*
15631 basic_string<_CharT, _Traits, _Alloc>::_Rep::
15632 _S_create(size_type __capacity, size_type __old_capacity,
15633 const _Alloc& __alloc)
15637 if (__capacity > _S_max_size)
15638 __throw_length_error((
"basic_string::_S_create"));
15639 # 577 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.tcc" 3
15640 const size_type __pagesize = 4096;
15641 const size_type __malloc_header_size = 4 *
sizeof(
void*);
15649 if (__capacity > __old_capacity && __capacity < 2 * __old_capacity)
15650 __capacity = 2 * __old_capacity;
15655 size_type __size = (__capacity + 1) *
sizeof(_CharT) +
sizeof(_Rep);
15657 const size_type __adj_size = __size + __malloc_header_size;
15658 if (__adj_size > __pagesize && __capacity > __old_capacity)
15660 const size_type __extra = __pagesize - __adj_size % __pagesize;
15661 __capacity += __extra /
sizeof(_CharT);
15663 if (__capacity > _S_max_size)
15664 __capacity = _S_max_size;
15665 __size = (__capacity + 1) *
sizeof(_CharT) +
sizeof(_Rep);
15670 void* __place = _Raw_bytes_alloc(__alloc).allocate(__size);
15671 _Rep *__p =
new (__place) _Rep;
15672 __p->_M_capacity = __capacity;
15680 __p->_M_set_sharable();
15684 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15686 basic_string<_CharT, _Traits, _Alloc>::_Rep::
15687 _M_clone(
const _Alloc& __alloc, size_type __res)
15690 const size_type __requested_cap = this->_M_length + __res;
15691 _Rep* __r = _Rep::_S_create(__requested_cap, this->_M_capacity,
15693 if (this->_M_length)
15694 _M_copy(__r->_M_refdata(), _M_refdata(), this->_M_length);
15696 __r->_M_set_length_and_sharable(this->_M_length);
15697 return __r->_M_refdata();
15700 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15702 basic_string<_CharT, _Traits, _Alloc>::
15703 resize(size_type __n, _CharT __c)
15705 const size_type __size = this->size();
15706 _M_check_length(__size, __n,
"basic_string::resize");
15708 this->append(__n - __size, __c);
15709 else if (__n < __size)
15714 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15715 template<
typename _InputIterator>
15716 basic_string<_CharT, _Traits, _Alloc>&
15717 basic_string<_CharT, _Traits, _Alloc>::
15718 _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
15719 _InputIterator __k2, __false_type)
15721 const basic_string __s(__k1, __k2);
15722 const size_type __n1 = __i2 - __i1;
15723 _M_check_length(__n1, __s.size(),
"basic_string::_M_replace_dispatch");
15724 return _M_replace_safe(__i1 - _M_ibegin(), __n1, __s._M_data(),
15728 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15729 basic_string<_CharT, _Traits, _Alloc>&
15730 basic_string<_CharT, _Traits, _Alloc>::
15731 _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
15734 _M_check_length(__n1, __n2,
"basic_string::_M_replace_aux");
15735 _M_mutate(__pos1, __n1, __n2);
15737 _M_assign(_M_data() + __pos1, __n2, __c);
15741 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15742 basic_string<_CharT, _Traits, _Alloc>&
15743 basic_string<_CharT, _Traits, _Alloc>::
15744 _M_replace_safe(size_type __pos1, size_type __n1,
const _CharT* __s,
15747 _M_mutate(__pos1, __n1, __n2);
15749 _M_copy(_M_data() + __pos1, __s, __n2);
15753 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15754 basic_string<_CharT, _Traits, _Alloc>
15755 operator+(
const _CharT* __lhs,
15756 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
15759 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
15760 typedef typename __string_type::size_type __size_type;
15761 const __size_type __len = _Traits::length(__lhs);
15762 __string_type __str;
15763 __str.reserve(__len + __rhs.size());
15764 __str.append(__lhs, __len);
15765 __str.append(__rhs);
15769 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15770 basic_string<_CharT, _Traits, _Alloc>
15771 operator+(_CharT __lhs,
const basic_string<_CharT, _Traits, _Alloc>& __rhs)
15773 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
15774 typedef typename __string_type::size_type __size_type;
15775 __string_type __str;
15776 const __size_type __len = __rhs.size();
15777 __str.reserve(__len + 1);
15778 __str.append(__size_type(1), __lhs);
15779 __str.append(__rhs);
15783 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15784 typename basic_string<_CharT, _Traits, _Alloc>::size_type
15785 basic_string<_CharT, _Traits, _Alloc>::
15786 copy(_CharT* __s, size_type __n, size_type __pos)
const
15788 _M_check(__pos,
"basic_string::copy");
15789 __n = _M_limit(__pos, __n);
15792 _M_copy(__s, _M_data() + __pos, __n);
15797 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15798 typename basic_string<_CharT, _Traits, _Alloc>::size_type
15799 basic_string<_CharT, _Traits, _Alloc>::
15800 find(
const _CharT* __s, size_type __pos, size_type __n)
const
15803 const size_type __size = this->size();
15804 const _CharT* __data = _M_data();
15807 return __pos <= __size ? __pos : npos;
15811 for (; __pos <= __size - __n; ++__pos)
15812 if (traits_type::eq(__data[__pos], __s[0])
15813 && traits_type::compare(__data + __pos + 1,
15814 __s + 1, __n - 1) == 0)
15820 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15821 typename basic_string<_CharT, _Traits, _Alloc>::size_type
15822 basic_string<_CharT, _Traits, _Alloc>::
15823 find(_CharT __c, size_type __pos)
const noexcept
15825 size_type __ret = npos;
15826 const size_type __size = this->size();
15827 if (__pos < __size)
15829 const _CharT* __data = _M_data();
15830 const size_type __n = __size - __pos;
15831 const _CharT* __p = traits_type::find(__data + __pos, __n, __c);
15833 __ret = __p - __data;
15838 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15839 typename basic_string<_CharT, _Traits, _Alloc>::size_type
15840 basic_string<_CharT, _Traits, _Alloc>::
15841 rfind(
const _CharT* __s, size_type __pos, size_type __n)
const
15844 const size_type __size = this->size();
15847 __pos = std::min(size_type(__size - __n), __pos);
15848 const _CharT* __data = _M_data();
15851 if (traits_type::compare(__data + __pos, __s, __n) == 0)
15854 while (__pos-- > 0);
15859 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15860 typename basic_string<_CharT, _Traits, _Alloc>::size_type
15861 basic_string<_CharT, _Traits, _Alloc>::
15862 rfind(_CharT __c, size_type __pos)
const noexcept
15864 size_type __size = this->size();
15867 if (--__size > __pos)
15869 for (++__size; __size-- > 0; )
15870 if (traits_type::eq(_M_data()[__size], __c))
15876 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15877 typename basic_string<_CharT, _Traits, _Alloc>::size_type
15878 basic_string<_CharT, _Traits, _Alloc>::
15879 find_first_of(
const _CharT* __s, size_type __pos, size_type __n)
const
15882 for (; __n && __pos < this->size(); ++__pos)
15884 const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]);
15891 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15892 typename basic_string<_CharT, _Traits, _Alloc>::size_type
15893 basic_string<_CharT, _Traits, _Alloc>::
15894 find_last_of(
const _CharT* __s, size_type __pos, size_type __n)
const
15897 size_type __size = this->size();
15900 if (--__size > __pos)
15904 if (traits_type::find(__s, __n, _M_data()[__size]))
15907 while (__size-- != 0);
15912 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15913 typename basic_string<_CharT, _Traits, _Alloc>::size_type
15914 basic_string<_CharT, _Traits, _Alloc>::
15915 find_first_not_of(
const _CharT* __s, size_type __pos, size_type __n)
const
15918 for (; __pos < this->size(); ++__pos)
15919 if (!traits_type::find(__s, __n, _M_data()[__pos]))
15924 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15925 typename basic_string<_CharT, _Traits, _Alloc>::size_type
15926 basic_string<_CharT, _Traits, _Alloc>::
15927 find_first_not_of(_CharT __c, size_type __pos)
const noexcept
15929 for (; __pos < this->size(); ++__pos)
15930 if (!traits_type::eq(_M_data()[__pos], __c))
15935 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15936 typename basic_string<_CharT, _Traits, _Alloc>::size_type
15937 basic_string<_CharT, _Traits, _Alloc>::
15938 find_last_not_of(
const _CharT* __s, size_type __pos, size_type __n)
const
15941 size_type __size = this->size();
15944 if (--__size > __pos)
15948 if (!traits_type::find(__s, __n, _M_data()[__size]))
15956 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15957 typename basic_string<_CharT, _Traits, _Alloc>::size_type
15958 basic_string<_CharT, _Traits, _Alloc>::
15959 find_last_not_of(_CharT __c, size_type __pos)
const noexcept
15961 size_type __size = this->size();
15964 if (--__size > __pos)
15968 if (!traits_type::eq(_M_data()[__size], __c))
15976 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15978 basic_string<_CharT, _Traits, _Alloc>::
15979 compare(size_type __pos, size_type __n,
const basic_string& __str)
const
15981 _M_check(__pos,
"basic_string::compare");
15982 __n = _M_limit(__pos, __n);
15983 const size_type __osize = __str.size();
15984 const size_type __len = std::min(__n, __osize);
15985 int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len);
15987 __r = _S_compare(__n, __osize);
15991 template<
typename _CharT,
typename _Traits,
typename _Alloc>
15993 basic_string<_CharT, _Traits, _Alloc>::
15994 compare(size_type __pos1, size_type __n1,
const basic_string& __str,
15995 size_type __pos2, size_type __n2)
const
15997 _M_check(__pos1,
"basic_string::compare");
15998 __str._M_check(__pos2,
"basic_string::compare");
15999 __n1 = _M_limit(__pos1, __n1);
16000 __n2 = __str._M_limit(__pos2, __n2);
16001 const size_type __len = std::min(__n1, __n2);
16002 int __r = traits_type::compare(_M_data() + __pos1,
16003 __str.data() + __pos2, __len);
16005 __r = _S_compare(__n1, __n2);
16009 template<
typename _CharT,
typename _Traits,
typename _Alloc>
16011 basic_string<_CharT, _Traits, _Alloc>::
16012 compare(
const _CharT* __s)
const
16015 const size_type __size = this->size();
16016 const size_type __osize = traits_type::length(__s);
16017 const size_type __len = std::min(__size, __osize);
16018 int __r = traits_type::compare(_M_data(), __s, __len);
16020 __r = _S_compare(__size, __osize);
16024 template<
typename _CharT,
typename _Traits,
typename _Alloc>
16026 basic_string <_CharT, _Traits, _Alloc>::
16027 compare(size_type __pos, size_type __n1,
const _CharT* __s)
const
16030 _M_check(__pos,
"basic_string::compare");
16031 __n1 = _M_limit(__pos, __n1);
16032 const size_type __osize = traits_type::length(__s);
16033 const size_type __len = std::min(__n1, __osize);
16034 int __r = traits_type::compare(_M_data() + __pos, __s, __len);
16036 __r = _S_compare(__n1, __osize);
16040 template<
typename _CharT,
typename _Traits,
typename _Alloc>
16042 basic_string <_CharT, _Traits, _Alloc>::
16043 compare(size_type __pos, size_type __n1,
const _CharT* __s,
16044 size_type __n2)
const
16047 _M_check(__pos,
"basic_string::compare");
16048 __n1 = _M_limit(__pos, __n1);
16049 const size_type __len = std::min(__n1, __n2);
16050 int __r = traits_type::compare(_M_data() + __pos, __s, __len);
16052 __r = _S_compare(__n1, __n2);
16057 template<
typename _CharT,
typename _Traits,
typename _Alloc>
16058 basic_istream<_CharT, _Traits>&
16059 operator>>(basic_istream<_CharT, _Traits>& __in,
16060 basic_string<_CharT, _Traits, _Alloc>& __str)
16062 typedef basic_istream<_CharT, _Traits> __istream_type;
16063 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
16064 typedef typename __istream_type::ios_base __ios_base;
16065 typedef typename __istream_type::int_type __int_type;
16066 typedef typename __string_type::size_type __size_type;
16067 typedef ctype<_CharT> __ctype_type;
16068 typedef typename __ctype_type::ctype_base __ctype_base;
16070 __size_type __extracted = 0;
16071 typename __ios_base::iostate __err = __ios_base::goodbit;
16072 typename __istream_type::sentry __cerb(__in,
false);
16080 __size_type __len = 0;
16081 const streamsize __w = __in.width();
16082 const __size_type __n = __w > 0 ?
static_cast<__size_type
>(__w)
16083 : __str.max_size();
16084 const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc());
16085 const __int_type __eof = _Traits::eof();
16086 __int_type __c = __in.rdbuf()->sgetc();
16088 while (__extracted < __n
16089 && !_Traits::eq_int_type(__c, __eof)
16090 && !__ct.is(__ctype_base::space,
16091 _Traits::to_char_type(__c)))
16093 if (__len ==
sizeof(__buf) /
sizeof(_CharT))
16095 __str.append(__buf,
sizeof(__buf) /
sizeof(_CharT));
16098 __buf[__len++] = _Traits::to_char_type(__c);
16100 __c = __in.rdbuf()->snextc();
16102 __str.append(__buf, __len);
16104 if (_Traits::eq_int_type(__c, __eof))
16105 __err |= __ios_base::eofbit;
16110 __in._M_setstate(__ios_base::badbit);
16118 __in._M_setstate(__ios_base::badbit);
16123 __err |= __ios_base::failbit;
16125 __in.setstate(__err);
16129 template<
typename _CharT,
typename _Traits,
typename _Alloc>
16130 basic_istream<_CharT, _Traits>&
16131 getline(basic_istream<_CharT, _Traits>& __in,
16132 basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim)
16134 typedef basic_istream<_CharT, _Traits> __istream_type;
16135 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
16136 typedef typename __istream_type::ios_base __ios_base;
16137 typedef typename __istream_type::int_type __int_type;
16138 typedef typename __string_type::size_type __size_type;
16140 __size_type __extracted = 0;
16141 const __size_type __n = __str.max_size();
16142 typename __ios_base::iostate __err = __ios_base::goodbit;
16143 typename __istream_type::sentry __cerb(__in,
true);
16149 const __int_type __idelim = _Traits::to_int_type(__delim);
16150 const __int_type __eof = _Traits::eof();
16151 __int_type __c = __in.rdbuf()->sgetc();
16153 while (__extracted < __n
16154 && !_Traits::eq_int_type(__c, __eof)
16155 && !_Traits::eq_int_type(__c, __idelim))
16157 __str += _Traits::to_char_type(__c);
16159 __c = __in.rdbuf()->snextc();
16162 if (_Traits::eq_int_type(__c, __eof))
16163 __err |= __ios_base::eofbit;
16164 else if (_Traits::eq_int_type(__c, __idelim))
16167 __in.rdbuf()->sbumpc();
16170 __err |= __ios_base::failbit;
16174 __in._M_setstate(__ios_base::badbit);
16182 __in._M_setstate(__ios_base::badbit);
16186 __err |= __ios_base::failbit;
16188 __in.setstate(__err);
16195 extern template class basic_string<char>;
16197 basic_istream<char>&
16198 operator>>(basic_istream<char>&,
string&);
16200 basic_ostream<char>&
16201 operator<<(basic_ostream<char>&,
const string&);
16203 basic_istream<char>&
16204 getline(basic_istream<char>&,
string&,
char);
16206 basic_istream<char>&
16207 getline(basic_istream<char>&,
string&);
16210 extern template class basic_string<wchar_t>;
16212 basic_istream<wchar_t>&
16213 operator>>(basic_istream<wchar_t>&, wstring&);
16215 basic_ostream<wchar_t>&
16216 operator<<(basic_ostream<wchar_t>&,
const wstring&);
16218 basic_istream<wchar_t>&
16219 getline(basic_istream<wchar_t>&, wstring&,
wchar_t);
16221 basic_istream<wchar_t>&
16222 getline(basic_istream<wchar_t>&, wstring&);
16228 # 54 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
16229 # 26 "./integral.hpp" 2
16230 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 1 3
16231 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
16233 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 1 3
16234 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
16236 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ios" 1 3
16237 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ios" 3
16243 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 1 3
16244 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
16248 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 1 3
16249 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16255 namespace std __attribute__ ((__visibility__ (
"default")))
16257 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16263 typedef int category;
16270 friend class facet;
16271 friend class _Impl;
16273 template<
typename _Facet>
16275 has_facet(
const locale&) throw();
16277 template<typename _Facet>
16278 friend const _Facet&
16279 use_facet(const locale&);
16281 template<typename _Cache>
16282 friend struct __use_cache;
16283 # 98 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16284 static const category none = 0;
16285 static const category ctype = 1L << 0;
16286 static const category numeric = 1L << 1;
16287 static const category collate = 1L << 2;
16288 static const category time = 1L << 3;
16289 static const category monetary = 1L << 4;
16290 static const category messages = 1L << 5;
16291 static const category all = (ctype | numeric | collate |
16292 time | monetary | messages);
16293 # 117 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16295 # 126 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16296 locale(
const locale& __other)
throw();
16297 # 136 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16299 locale(
const char* __s);
16300 # 151 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16301 locale(
const locale& __base,
const char* __s, category __cat);
16302 # 164 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16303 locale(
const locale& __base,
const locale& __add, category __cat);
16304 # 177 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16305 template<
typename _Facet>
16306 locale(
const locale& __other, _Facet* __f);
16310 # 191 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16312 operator=(
const locale& __other)
throw();
16313 # 206 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16314 template<
typename _Facet>
16316 combine(
const locale& __other)
const;
16325 # 225 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16327 operator==(
const locale& __other)
const throw();
16336 operator!=(
const locale& __other)
const throw()
16337 {
return !(this->operator==(__other)); }
16338 # 253 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16339 template<
typename _Char,
typename _Traits,
typename _Alloc>
16341 operator()(
const basic_string<_Char, _Traits, _Alloc>& __s1,
16342 const basic_string<_Char, _Traits, _Alloc>& __s2)
const;
16343 # 269 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16345 global(
const locale& __loc);
16350 static const locale&
16358 static _Impl* _S_classic;
16361 static _Impl* _S_global;
16367 static const char*
const*
const _S_categories;
16368 # 304 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16369 enum { _S_categories_size = 6 + 6 };
16372 static __gthread_once_t _S_once;
16376 locale(_Impl*) throw();
16382 _S_initialize_once() throw();
16385 _S_normalize_category(category);
16388 _M_coalesce(const locale& __base, const locale& __add, category __cat);
16390 # 338 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16391 class locale::facet
16394 friend class locale;
16395 friend class locale::_Impl;
16397 mutable _Atomic_word _M_refcount;
16400 static __c_locale _S_c_locale;
16403 static const char _S_c_name[2];
16406 static __gthread_once_t _S_once;
16410 _S_initialize_once();
16413 # 369 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16415 facet(
size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0)
16423 _S_create_c_locale(__c_locale& __cloc,
const char* __s,
16424 __c_locale __old = 0);
16427 _S_clone_c_locale(__c_locale& __cloc)
throw();
16430 _S_destroy_c_locale(__c_locale& __cloc);
16433 _S_lc_ctype_c_locale(__c_locale __cloc,
const char* __s);
16440 __attribute__ ((__const__)) static const
char*
16441 _S_get_c_name() throw();
16445 _M_add_reference() const throw()
16446 { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); }
16449 _M_remove_reference()
const throw()
16453 if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1)
16463 facet(
const facet&);
16466 operator=(
const facet&);
16468 # 436 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16472 friend class locale;
16473 friend class locale::_Impl;
16475 template<
typename _Facet>
16476 friend const _Facet&
16477 use_facet(
const locale&);
16479 template<
typename _Facet>
16481 has_facet(
const locale&) throw();
16486 mutable
size_t _M_index;
16489 static _Atomic_word _S_refcount;
16492 operator=(const
id&);
16503 _M_id()
const throw();
16508 class locale::_Impl
16512 friend class locale;
16513 friend class locale::facet;
16515 template<
typename _Facet>
16517 has_facet(
const locale&) throw();
16519 template<typename _Facet>
16520 friend const _Facet&
16521 use_facet(const locale&);
16523 template<typename _Cache>
16524 friend struct __use_cache;
16528 _Atomic_word _M_refcount;
16529 const facet** _M_facets;
16530 size_t _M_facets_size;
16531 const facet** _M_caches;
16533 static const locale::
id* const _S_id_ctype[];
16534 static const locale::
id* const _S_id_numeric[];
16535 static const locale::
id* const _S_id_collate[];
16536 static const locale::
id* const _S_id_time[];
16537 static const locale::
id* const _S_id_monetary[];
16538 static const locale::
id* const _S_id_messages[];
16539 static const locale::
id* const* const _S_facet_categories[];
16542 _M_add_reference() throw()
16543 { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); }
16546 _M_remove_reference() throw()
16550 if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1)
16560 _Impl(
const _Impl&,
size_t);
16561 _Impl(
const char*,
size_t);
16562 _Impl(
size_t) throw();
16566 _Impl(const _Impl&);
16569 operator=(const _Impl&);
16572 _M_check_same_name()
16577 for (
size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i)
16578 __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0;
16583 _M_replace_categories(
const _Impl*, category);
16586 _M_replace_category(
const _Impl*,
const locale::id*
const*);
16589 _M_replace_facet(
const _Impl*,
const locale::id*);
16592 _M_install_facet(
const locale::id*,
const facet*);
16594 template<
typename _Facet>
16596 _M_init_facet(_Facet* __facet)
16597 { _M_install_facet(&_Facet::id, __facet); }
16600 _M_install_cache(
const facet*,
size_t);
16602 # 583 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16603 template<
typename _CharT>
16604 class collate :
public locale::facet
16610 typedef _CharT char_type;
16611 typedef basic_string<_CharT> string_type;
16617 __c_locale _M_c_locale_collate;
16621 static locale::id id;
16622 # 610 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16624 collate(
size_t __refs = 0)
16625 : facet(__refs), _M_c_locale_collate(_S_get_c_locale())
16627 # 624 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16629 collate(__c_locale __cloc,
size_t __refs = 0)
16630 : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc))
16632 # 641 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16634 compare(
const _CharT* __lo1,
const _CharT* __hi1,
16635 const _CharT* __lo2,
const _CharT* __hi2)
const
16636 {
return this->do_compare(__lo1, __hi1, __lo2, __hi2); }
16637 # 660 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16639 transform(
const _CharT* __lo,
const _CharT* __hi)
const
16640 {
return this->do_transform(__lo, __hi); }
16641 # 674 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16643 hash(
const _CharT* __lo,
const _CharT* __hi)
const
16644 {
return this->do_hash(__lo, __hi); }
16648 _M_compare(
const _CharT*,
const _CharT*)
const throw();
16651 _M_transform(_CharT*, const _CharT*,
size_t) const throw();
16657 { _S_destroy_c_locale(_M_c_locale_collate); }
16658 # 703 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16660 do_compare(
const _CharT* __lo1,
const _CharT* __hi1,
16661 const _CharT* __lo2,
const _CharT* __hi2)
const;
16662 # 717 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16663 virtual string_type
16664 do_transform(
const _CharT* __lo,
const _CharT* __hi)
const;
16665 # 730 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16667 do_hash(
const _CharT* __lo,
const _CharT* __hi)
const;
16670 template<
typename _CharT>
16671 locale::id collate<_CharT>::id;
16676 collate<char>::_M_compare(
const char*,
const char*)
const throw();
16680 collate<
char>::_M_transform(
char*, const
char*,
size_t) const throw();
16685 collate<
wchar_t>::_M_compare(const
wchar_t*, const
wchar_t*) const throw();
16689 collate<
wchar_t>::_M_transform(
wchar_t*, const
wchar_t*,
size_t) const throw();
16693 template<typename _CharT>
16694 class collate_byname : public collate<_CharT>
16699 typedef _CharT char_type;
16700 typedef basic_string<_CharT> string_type;
16704 collate_byname(
const char* __s,
size_t __refs = 0)
16705 : collate<_CharT>(__refs)
16707 if (__builtin_strcmp(__s,
"C") != 0
16708 && __builtin_strcmp(__s,
"POSIX") != 0)
16710 this->_S_destroy_c_locale(this->_M_c_locale_collate);
16711 this->_S_create_c_locale(this->_M_c_locale_collate, __s);
16717 ~collate_byname() { }
16724 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.tcc" 1 3
16725 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.tcc" 3
16727 namespace std __attribute__ ((__visibility__ (
"default")))
16731 template<
typename _Facet>
16733 locale(
const locale& __other, _Facet* __f)
16735 _M_impl =
new _Impl(*__other._M_impl, 1);
16738 { _M_impl->_M_install_facet(&_Facet::id, __f); }
16741 _M_impl->_M_remove_reference();
16744 delete [] _M_impl->_M_names[0];
16745 _M_impl->_M_names[0] = 0;
16748 template<
typename _Facet>
16751 combine(
const locale& __other)
const
16753 _Impl* __tmp =
new _Impl(*_M_impl, 1);
16756 __tmp->_M_replace_facet(__other._M_impl, &_Facet::id);
16760 __tmp->_M_remove_reference();
16763 return locale(__tmp);
16766 template<
typename _CharT,
typename _Traits,
typename _Alloc>
16769 operator()(
const basic_string<_CharT, _Traits, _Alloc>& __s1,
16770 const basic_string<_CharT, _Traits, _Alloc>& __s2)
const
16772 typedef std::collate<_CharT> __collate_type;
16773 const __collate_type& __collate = use_facet<__collate_type>(*this);
16774 return (__collate.compare(__s1.data(), __s1.data() + __s1.length(),
16775 __s2.data(), __s2.data() + __s2.length()) < 0);
16777 # 102 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.tcc" 3
16778 template<
typename _Facet>
16780 has_facet(
const locale& __loc)
throw()
16782 const size_t __i = _Facet::id._M_id();
16783 const locale::facet** __facets = __loc._M_impl->_M_facets;
16784 return (__i < __loc._M_impl->_M_facets_size
16786 && dynamic_cast<const _Facet*>(__facets[__i]));
16791 # 130 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.tcc" 3
16792 template<
typename _Facet>
16794 use_facet(
const locale& __loc)
16796 const size_t __i = _Facet::id._M_id();
16797 const locale::facet** __facets = __loc._M_impl->_M_facets;
16798 if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i])
16799 __throw_bad_cast();
16801 return dynamic_cast<const _Facet&
>(*__facets[__i]);
16809 template<
typename _CharT>
16811 collate<_CharT>::_M_compare(
const _CharT*,
const _CharT*)
const throw ()
16815 template<
typename _CharT>
16817 collate<_CharT>::_M_transform(_CharT*,
const _CharT*,
size_t)
const throw ()
16820 template<
typename _CharT>
16823 do_compare(
const _CharT* __lo1,
const _CharT* __hi1,
16824 const _CharT* __lo2,
const _CharT* __hi2)
const
16828 const string_type __one(__lo1, __hi1);
16829 const string_type __two(__lo2, __hi2);
16831 const _CharT* __p = __one.c_str();
16832 const _CharT* __pend = __one.data() + __one.length();
16833 const _CharT* __q = __two.c_str();
16834 const _CharT* __qend = __two.data() + __two.length();
16841 const int __res = _M_compare(__p, __q);
16845 __p += char_traits<_CharT>::length(__p);
16846 __q += char_traits<_CharT>::length(__q);
16847 if (__p == __pend && __q == __qend)
16849 else if (__p == __pend)
16851 else if (__q == __qend)
16859 template<
typename _CharT>
16860 typename collate<_CharT>::string_type
16862 do_transform(
const _CharT* __lo,
const _CharT* __hi)
const
16867 const string_type __str(__lo, __hi);
16869 const _CharT* __p = __str.c_str();
16870 const _CharT* __pend = __str.data() + __str.length();
16872 size_t __len = (__hi - __lo) * 2;
16874 _CharT* __c =
new _CharT[__len];
16884 size_t __res = _M_transform(__c, __p, __len);
16887 if (__res >= __len)
16890 delete [] __c, __c = 0;
16891 __c =
new _CharT[__len];
16892 __res = _M_transform(__c, __p, __len);
16895 __ret.append(__c, __res);
16896 __p += char_traits<_CharT>::length(__p);
16901 __ret.push_back(_CharT());
16915 template<
typename _CharT>
16918 do_hash(
const _CharT* __lo,
const _CharT* __hi)
const
16920 unsigned long __val = 0;
16921 for (; __lo < __hi; ++__lo)
16923 *__lo + ((__val << 7)
16924 | (__val >> (__gnu_cxx::__numeric_traits<unsigned long>::
16926 return static_cast<long>(__val);
16932 extern template class collate<char>;
16933 extern template class collate_byname<char>;
16936 const collate<char>&
16937 use_facet<collate<char> >(
const locale&);
16941 has_facet<collate<char> >(
const locale&);
16944 extern template class collate<wchar_t>;
16945 extern template class collate_byname<wchar_t>;
16948 const collate<wchar_t>&
16949 use_facet<collate<wchar_t> >(
const locale&);
16953 has_facet<collate<wchar_t> >(
const locale&);
16959 # 788 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 2 3
16960 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 2 3
16962 namespace std __attribute__ ((__visibility__ ("default")))
16972 _S_boolalpha = 1L << 0,
16974 _S_fixed = 1L << 2,
16976 _S_internal = 1L << 4,
16979 _S_right = 1L << 7,
16980 _S_scientific = 1L << 8,
16981 _S_showbase = 1L << 9,
16982 _S_showpoint = 1L << 10,
16983 _S_showpos = 1L << 11,
16984 _S_skipws = 1L << 12,
16985 _S_unitbuf = 1L << 13,
16986 _S_uppercase = 1L << 14,
16987 _S_adjustfield = _S_left | _S_right | _S_internal,
16988 _S_basefield = _S_dec | _S_oct | _S_hex,
16989 _S_floatfield = _S_scientific | _S_fixed,
16990 _S_ios_fmtflags_end = 1L << 16
16993 inline constexpr _Ios_Fmtflags
16994 operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
16995 {
return _Ios_Fmtflags(static_cast<int>(__a) & static_cast<int>(__b)); }
16997 inline constexpr _Ios_Fmtflags
16998 operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
16999 {
return _Ios_Fmtflags(static_cast<int>(__a) | static_cast<int>(__b)); }
17001 inline constexpr _Ios_Fmtflags
17002 operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
17003 {
return _Ios_Fmtflags(static_cast<int>(__a) ^ static_cast<int>(__b)); }
17005 inline constexpr _Ios_Fmtflags
17006 operator~(_Ios_Fmtflags __a)
17007 {
return _Ios_Fmtflags(~static_cast<int>(__a)); }
17009 inline const _Ios_Fmtflags&
17010 operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
17011 {
return __a = __a | __b; }
17013 inline const _Ios_Fmtflags&
17014 operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
17015 {
return __a = __a & __b; }
17017 inline const _Ios_Fmtflags&
17018 operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
17019 {
return __a = __a ^ __b; }
17029 _S_trunc = 1L << 5,
17030 _S_ios_openmode_end = 1L << 16
17033 inline constexpr _Ios_Openmode
17034 operator&(_Ios_Openmode __a, _Ios_Openmode __b)
17035 {
return _Ios_Openmode(static_cast<int>(__a) & static_cast<int>(__b)); }
17037 inline constexpr _Ios_Openmode
17038 operator|(_Ios_Openmode __a, _Ios_Openmode __b)
17039 {
return _Ios_Openmode(static_cast<int>(__a) | static_cast<int>(__b)); }
17041 inline constexpr _Ios_Openmode
17042 operator^(_Ios_Openmode __a, _Ios_Openmode __b)
17043 {
return _Ios_Openmode(static_cast<int>(__a) ^ static_cast<int>(__b)); }
17045 inline constexpr _Ios_Openmode
17046 operator~(_Ios_Openmode __a)
17047 {
return _Ios_Openmode(~static_cast<int>(__a)); }
17049 inline const _Ios_Openmode&
17050 operator|=(_Ios_Openmode& __a, _Ios_Openmode __b)
17051 {
return __a = __a | __b; }
17053 inline const _Ios_Openmode&
17054 operator&=(_Ios_Openmode& __a, _Ios_Openmode __b)
17055 {
return __a = __a & __b; }
17057 inline const _Ios_Openmode&
17058 operator^=(_Ios_Openmode& __a, _Ios_Openmode __b)
17059 {
return __a = __a ^ __b; }
17065 _S_badbit = 1L << 0,
17066 _S_eofbit = 1L << 1,
17067 _S_failbit = 1L << 2,
17068 _S_ios_iostate_end = 1L << 16
17071 inline constexpr _Ios_Iostate
17072 operator&(_Ios_Iostate __a, _Ios_Iostate __b)
17073 {
return _Ios_Iostate(static_cast<int>(__a) & static_cast<int>(__b)); }
17075 inline constexpr _Ios_Iostate
17076 operator|(_Ios_Iostate __a, _Ios_Iostate __b)
17077 {
return _Ios_Iostate(static_cast<int>(__a) | static_cast<int>(__b)); }
17079 inline constexpr _Ios_Iostate
17080 operator^(_Ios_Iostate __a, _Ios_Iostate __b)
17081 {
return _Ios_Iostate(static_cast<int>(__a) ^ static_cast<int>(__b)); }
17083 inline constexpr _Ios_Iostate
17084 operator~(_Ios_Iostate __a)
17085 {
return _Ios_Iostate(~static_cast<int>(__a)); }
17087 inline const _Ios_Iostate&
17088 operator|=(_Ios_Iostate& __a, _Ios_Iostate __b)
17089 {
return __a = __a | __b; }
17091 inline const _Ios_Iostate&
17092 operator&=(_Ios_Iostate& __a, _Ios_Iostate __b)
17093 {
return __a = __a & __b; }
17095 inline const _Ios_Iostate&
17096 operator^=(_Ios_Iostate& __a, _Ios_Iostate __b)
17097 {
return __a = __a ^ __b; }
17105 _S_ios_seekdir_end = 1L << 16
17107 # 199 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17118 class failure :
public exception
17124 failure(
const string& __str)
throw();
17129 ~failure() throw();
17131 virtual const
char*
17132 what() const throw();
17137 # 255 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17138 typedef _Ios_Fmtflags fmtflags;
17141 static const fmtflags boolalpha = _S_boolalpha;
17144 static const fmtflags dec = _S_dec;
17147 static const fmtflags fixed = _S_fixed;
17150 static const fmtflags hex = _S_hex;
17155 static const fmtflags
internal = _S_internal;
17159 static const fmtflags left = _S_left;
17162 static const fmtflags oct = _S_oct;
17166 static const fmtflags right = _S_right;
17169 static const fmtflags scientific = _S_scientific;
17173 static const fmtflags showbase = _S_showbase;
17177 static const fmtflags showpoint = _S_showpoint;
17180 static const fmtflags showpos = _S_showpos;
17183 static const fmtflags skipws = _S_skipws;
17186 static const fmtflags unitbuf = _S_unitbuf;
17190 static const fmtflags uppercase = _S_uppercase;
17193 static const fmtflags adjustfield = _S_adjustfield;
17196 static const fmtflags basefield = _S_basefield;
17199 static const fmtflags floatfield = _S_floatfield;
17200 # 330 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17201 typedef _Ios_Iostate iostate;
17205 static const iostate badbit = _S_badbit;
17208 static const iostate eofbit = _S_eofbit;
17213 static const iostate failbit = _S_failbit;
17216 static const iostate goodbit = _S_goodbit;
17217 # 361 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17218 typedef _Ios_Openmode openmode;
17221 static const openmode app = _S_app;
17224 static const openmode ate = _S_ate;
17229 static const openmode binary = _S_bin;
17232 static const openmode in = _S_in;
17235 static const openmode out = _S_out;
17238 static const openmode trunc = _S_trunc;
17239 # 393 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17240 typedef _Ios_Seekdir seekdir;
17243 static const seekdir beg = _S_beg;
17246 static const seekdir cur = _S_cur;
17249 static const seekdir end = _S_end;
17252 typedef int io_state;
17253 typedef int open_mode;
17254 typedef int seek_dir;
17256 typedef std::streampos streampos;
17257 typedef std::streamoff streamoff;
17258 # 419 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17265 # 436 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17266 typedef void (*event_callback) (
event __e, ios_base& __b,
int __i);
17267 # 448 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17269 register_callback(event_callback __fn,
int __index);
17272 streamsize _M_precision;
17273 streamsize _M_width;
17275 iostate _M_exception;
17276 iostate _M_streambuf_state;
17280 struct _Callback_list
17283 _Callback_list* _M_next;
17284 ios_base::event_callback _M_fn;
17286 _Atomic_word _M_refcount;
17288 _Callback_list(ios_base::event_callback __fn,
int __index,
17289 _Callback_list* __cb)
17290 : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { }
17293 _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); }
17297 _M_remove_reference()
17301 int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1);
17310 _Callback_list* _M_callbacks;
17313 _M_call_callbacks(event __ev)
throw();
17316 _M_dispose_callbacks(
void) throw();
17323 _Words() : _M_pword(0), _M_iword(0) { }
17327 _Words _M_word_zero;
17331 enum { _S_local_word_size = 8 };
17332 _Words _M_local_word[_S_local_word_size];
17339 _M_grow_words(
int __index,
bool __iword);
17342 locale _M_ios_locale;
17355 friend class ios_base;
17361 static _Atomic_word _S_refcount;
17362 static bool _S_synced_with_stdio;
17372 {
return _M_flags; }
17373 # 561 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17375 flags(fmtflags __fmtfl)
17377 fmtflags __old = _M_flags;
17378 _M_flags = __fmtfl;
17381 # 577 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17383 setf(fmtflags __fmtfl)
17385 fmtflags __old = _M_flags;
17386 _M_flags |= __fmtfl;
17389 # 594 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17391 setf(fmtflags __fmtfl, fmtflags __mask)
17393 fmtflags __old = _M_flags;
17394 _M_flags &= ~__mask;
17395 _M_flags |= (__fmtfl & __mask);
17406 unsetf(fmtflags __mask)
17407 { _M_flags &= ~__mask; }
17408 # 620 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17411 {
return _M_precision; }
17419 precision(streamsize __prec)
17421 streamsize __old = _M_precision;
17422 _M_precision = __prec;
17434 {
return _M_width; }
17442 width(streamsize __wide)
17444 streamsize __old = _M_width;
17448 # 671 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17450 sync_with_stdio(
bool __sync =
true);
17451 # 683 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17453 imbue(
const locale& __loc)
throw();
17454 # 694 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17457 {
return _M_ios_locale; }
17458 # 705 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17461 {
return _M_ios_locale; }
17462 # 724 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17465 # 740 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17469 _Words& __word = (__ix < _M_word_size)
17470 ? _M_word[__ix] : _M_grow_words(__ix,
true);
17471 return __word._M_iword;
17473 # 761 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17477 _Words& __word = (__ix < _M_word_size)
17478 ? _M_word[__ix] : _M_grow_words(__ix,
false);
17479 return __word._M_pword;
17481 # 778 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17482 virtual ~ios_base();
17485 ios_base() throw ();
17490 ios_base(const ios_base&);
17493 operator=(const ios_base&);
17499 boolalpha(ios_base& __base)
17501 __base.setf(ios_base::boolalpha);
17507 noboolalpha(ios_base& __base)
17509 __base.unsetf(ios_base::boolalpha);
17515 showbase(ios_base& __base)
17517 __base.setf(ios_base::showbase);
17523 noshowbase(ios_base& __base)
17525 __base.unsetf(ios_base::showbase);
17531 showpoint(ios_base& __base)
17533 __base.setf(ios_base::showpoint);
17539 noshowpoint(ios_base& __base)
17541 __base.unsetf(ios_base::showpoint);
17547 showpos(ios_base& __base)
17549 __base.setf(ios_base::showpos);
17555 noshowpos(ios_base& __base)
17557 __base.unsetf(ios_base::showpos);
17563 skipws(ios_base& __base)
17565 __base.setf(ios_base::skipws);
17571 noskipws(ios_base& __base)
17573 __base.unsetf(ios_base::skipws);
17579 uppercase(ios_base& __base)
17581 __base.setf(ios_base::uppercase);
17587 nouppercase(ios_base& __base)
17589 __base.unsetf(ios_base::uppercase);
17595 unitbuf(ios_base& __base)
17597 __base.setf(ios_base::unitbuf);
17603 nounitbuf(ios_base& __base)
17605 __base.unsetf(ios_base::unitbuf);
17612 internal(ios_base& __base)
17614 __base.setf(ios_base::internal, ios_base::adjustfield);
17620 left(ios_base& __base)
17622 __base.setf(ios_base::left, ios_base::adjustfield);
17628 right(ios_base& __base)
17630 __base.setf(ios_base::right, ios_base::adjustfield);
17637 dec(ios_base& __base)
17639 __base.setf(ios_base::dec, ios_base::basefield);
17645 hex(ios_base& __base)
17647 __base.setf(ios_base::hex, ios_base::basefield);
17653 oct(ios_base& __base)
17655 __base.setf(ios_base::oct, ios_base::basefield);
17662 fixed(ios_base& __base)
17664 __base.setf(ios_base::fixed, ios_base::floatfield);
17670 scientific(ios_base& __base)
17672 __base.setf(ios_base::scientific, ios_base::floatfield);
17678 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ios" 2 3
17679 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 1 3
17680 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17689 namespace std __attribute__ ((__visibility__ ("default")))
17693 template<
typename _CharT,
typename _Traits>
17695 __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*,
17696 basic_streambuf<_CharT, _Traits>*,
bool&);
17697 # 119 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17698 template<
typename _CharT,
typename _Traits>
17699 class basic_streambuf
17708 typedef _CharT char_type;
17709 typedef _Traits traits_type;
17710 typedef typename traits_type::int_type int_type;
17711 typedef typename traits_type::pos_type pos_type;
17712 typedef typename traits_type::off_type off_type;
17717 typedef basic_streambuf<char_type, traits_type> __streambuf_type;
17720 friend class basic_ios<char_type, traits_type>;
17721 friend class basic_istream<char_type, traits_type>;
17722 friend class basic_ostream<char_type, traits_type>;
17723 friend class istreambuf_iterator<char_type, traits_type>;
17724 friend class ostreambuf_iterator<char_type, traits_type>;
17727 __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*,
bool&);
17729 template<
bool _IsMove,
typename _CharT2>
17730 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
17732 __copy_move_a2(istreambuf_iterator<_CharT2>,
17733 istreambuf_iterator<_CharT2>, _CharT2*);
17735 template<
typename _CharT2>
17736 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
17737 istreambuf_iterator<_CharT2> >::__type
17738 find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
17741 template<
typename _CharT2,
typename _Traits2>
17742 friend basic_istream<_CharT2, _Traits2>&
17743 operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*);
17745 template<
typename _CharT2,
typename _Traits2,
typename _Alloc>
17746 friend basic_istream<_CharT2, _Traits2>&
17747 operator>>(basic_istream<_CharT2, _Traits2>&,
17748 basic_string<_CharT2, _Traits2, _Alloc>&);
17750 template<
typename _CharT2,
typename _Traits2,
typename _Alloc>
17751 friend basic_istream<_CharT2, _Traits2>&
17752 getline(basic_istream<_CharT2, _Traits2>&,
17753 basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2);
17763 char_type* _M_in_beg;
17764 char_type* _M_in_cur;
17765 char_type* _M_in_end;
17766 char_type* _M_out_beg;
17767 char_type* _M_out_cur;
17768 char_type* _M_out_end;
17771 locale _M_buf_locale;
17778 # 208 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17780 pubimbue(
const locale& __loc)
17782 locale __tmp(this->getloc());
17783 this->imbue(__loc);
17784 _M_buf_locale = __loc;
17787 # 225 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17790 {
return _M_buf_locale; }
17791 # 238 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17793 pubsetbuf(char_type* __s, streamsize __n)
17794 {
return this->setbuf(__s, __n); }
17795 # 250 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17797 pubseekoff(off_type __off, ios_base::seekdir __way,
17798 ios_base::openmode __mode = ios_base::in | ios_base::out)
17799 {
return this->seekoff(__off, __way, __mode); }
17800 # 262 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17802 pubseekpos(pos_type __sp,
17803 ios_base::openmode __mode = ios_base::in | ios_base::out)
17804 {
return this->seekpos(__sp, __mode); }
17810 pubsync() {
return this->sync(); }
17811 # 283 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17815 const streamsize __ret = this->egptr() - this->gptr();
17816 return __ret ? __ret : this->showmanyc();
17818 # 297 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17822 int_type __ret = traits_type::eof();
17823 if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(),
17825 __ret = this->sgetc();
17828 # 315 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17833 if (__builtin_expect(this->gptr() < this->egptr(),
true))
17835 __ret = traits_type::to_int_type(*this->gptr());
17839 __ret = this->uflow();
17842 # 337 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17847 if (__builtin_expect(this->gptr() < this->egptr(),
true))
17848 __ret = traits_type::to_int_type(*this->gptr());
17850 __ret = this->underflow();
17853 # 356 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17855 sgetn(char_type* __s, streamsize __n)
17856 {
return this->xsgetn(__s, __n); }
17857 # 371 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17859 sputbackc(char_type __c)
17862 const bool __testpos = this->eback() < this->gptr();
17863 if (__builtin_expect(!__testpos ||
17864 !traits_type::eq(__c, this->gptr()[-1]),
false))
17865 __ret = this->pbackfail(traits_type::to_int_type(__c));
17869 __ret = traits_type::to_int_type(*this->gptr());
17873 # 396 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17878 if (__builtin_expect(this->eback() < this->gptr(),
true))
17881 __ret = traits_type::to_int_type(*this->gptr());
17884 __ret = this->pbackfail();
17887 # 423 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17889 sputc(char_type __c)
17892 if (__builtin_expect(this->pptr() < this->epptr(),
true))
17894 *this->pptr() = __c;
17896 __ret = traits_type::to_int_type(__c);
17899 __ret = this->overflow(traits_type::to_int_type(__c));
17902 # 449 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17904 sputn(
const char_type* __s, streamsize __n)
17905 {
return this->xsputn(__s, __n); }
17908 # 463 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17910 : _M_in_beg(0), _M_in_cur(0), _M_in_end(0),
17911 _M_out_beg(0), _M_out_cur(0), _M_out_end(0),
17912 _M_buf_locale(locale())
17914 # 481 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17916 eback()
const {
return _M_in_beg; }
17919 gptr()
const {
return _M_in_cur; }
17922 egptr()
const {
return _M_in_end; }
17923 # 497 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17925 gbump(
int __n) { _M_in_cur += __n; }
17926 # 508 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17928 setg(char_type* __gbeg, char_type* __gnext, char_type* __gend)
17930 _M_in_beg = __gbeg;
17931 _M_in_cur = __gnext;
17932 _M_in_end = __gend;
17934 # 528 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17936 pbase()
const {
return _M_out_beg; }
17939 pptr()
const {
return _M_out_cur; }
17942 epptr()
const {
return _M_out_end; }
17943 # 544 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17945 pbump(
int __n) { _M_out_cur += __n; }
17946 # 554 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17948 setp(char_type* __pbeg, char_type* __pend)
17950 _M_out_beg = _M_out_cur = __pbeg;
17951 _M_out_end = __pend;
17953 # 575 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17955 imbue(
const locale& __loc)
17957 # 590 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17958 virtual basic_streambuf<char_type,_Traits>*
17959 setbuf(char_type*, streamsize)
17961 # 601 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17963 seekoff(off_type, ios_base::seekdir,
17964 ios_base::openmode = ios_base::in | ios_base::out)
17965 {
return pos_type(off_type(-1)); }
17966 # 613 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17969 ios_base::openmode = ios_base::in | ios_base::out)
17970 {
return pos_type(off_type(-1)); }
17971 # 626 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17973 sync() {
return 0; }
17974 # 648 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17976 showmanyc() {
return 0; }
17977 # 664 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17979 xsgetn(char_type* __s, streamsize __n);
17980 # 686 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17983 {
return traits_type::eof(); }
17984 # 699 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17988 int_type __ret = traits_type::eof();
17989 const bool __testeof = traits_type::eq_int_type(this->underflow(),
17993 __ret = traits_type::to_int_type(*this->gptr());
17998 # 723 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
18000 pbackfail(int_type __c = traits_type::eof())
18001 {
return traits_type::eof(); }
18002 # 741 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
18004 xsputn(
const char_type* __s, streamsize __n);
18005 # 767 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
18007 overflow(int_type __c = traits_type::eof())
18008 {
return traits_type::eof(); }
18013 # 782 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
18017 if (this->gptr() < this->egptr())
18026 __safe_gbump(streamsize __n) { _M_in_cur += __n; }
18029 __safe_pbump(streamsize __n) { _M_out_cur += __n; }
18034 basic_streambuf(
const basic_streambuf& __sb)
18035 : _M_in_beg(__sb._M_in_beg), _M_in_cur(__sb._M_in_cur),
18036 _M_in_end(__sb._M_in_end), _M_out_beg(__sb._M_out_beg),
18037 _M_out_cur(__sb._M_out_cur), _M_out_end(__sb._M_out_cur),
18038 _M_buf_locale(__sb._M_buf_locale)
18042 operator=(
const basic_streambuf&) {
return *
this; };
18048 __copy_streambufs_eof(basic_streambuf<char>* __sbin,
18049 basic_streambuf<char>* __sbout,
bool& __ineof);
18053 __copy_streambufs_eof(basic_streambuf<wchar_t>* __sbin,
18054 basic_streambuf<wchar_t>* __sbout,
bool& __ineof);
18061 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/streambuf.tcc" 1 3
18062 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/streambuf.tcc" 3
18064 namespace std __attribute__ ((__visibility__ ("default")))
18068 template<
typename _CharT,
typename _Traits>
18070 basic_streambuf<_CharT, _Traits>::
18071 xsgetn(char_type* __s, streamsize __n)
18073 streamsize __ret = 0;
18074 while (__ret < __n)
18076 const streamsize __buf_len = this->egptr() - this->gptr();
18079 const streamsize __remaining = __n - __ret;
18080 const streamsize __len = std::min(__buf_len, __remaining);
18081 traits_type::copy(__s, this->gptr(), __len);
18084 this->__safe_gbump(__len);
18089 const int_type __c = this->uflow();
18090 if (!traits_type::eq_int_type(__c, traits_type::eof()))
18092 traits_type::assign(*__s++, traits_type::to_char_type(__c));
18102 template<
typename _CharT,
typename _Traits>
18104 basic_streambuf<_CharT, _Traits>::
18105 xsputn(
const char_type* __s, streamsize __n)
18107 streamsize __ret = 0;
18108 while (__ret < __n)
18110 const streamsize __buf_len = this->epptr() - this->pptr();
18113 const streamsize __remaining = __n - __ret;
18114 const streamsize __len = std::min(__buf_len, __remaining);
18115 traits_type::copy(this->pptr(), __s, __len);
18118 this->__safe_pbump(__len);
18123 int_type __c = this->overflow(traits_type::to_int_type(*__s));
18124 if (!traits_type::eq_int_type(__c, traits_type::eof()))
18139 template<
typename _CharT,
typename _Traits>
18141 __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin,
18142 basic_streambuf<_CharT, _Traits>* __sbout,
18145 streamsize __ret = 0;
18147 typename _Traits::int_type __c = __sbin->sgetc();
18148 while (!_Traits::eq_int_type(__c, _Traits::eof()))
18150 __c = __sbout->sputc(_Traits::to_char_type(__c));
18151 if (_Traits::eq_int_type(__c, _Traits::eof()))
18157 __c = __sbin->snextc();
18162 template<
typename _CharT,
typename _Traits>
18164 __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin,
18165 basic_streambuf<_CharT, _Traits>* __sbout)
18168 return __copy_streambufs_eof(__sbin, __sbout, __ineof);
18174 extern template class basic_streambuf<char>;
18177 __copy_streambufs(basic_streambuf<char>*,
18178 basic_streambuf<char>*);
18181 __copy_streambufs_eof(basic_streambuf<char>*,
18182 basic_streambuf<char>*,
bool&);
18185 extern template class basic_streambuf<wchar_t>;
18188 __copy_streambufs(basic_streambuf<wchar_t>*,
18189 basic_streambuf<wchar_t>*);
18192 __copy_streambufs_eof(basic_streambuf<wchar_t>*,
18193 basic_streambuf<wchar_t>*,
bool&);
18199 # 829 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 2 3
18200 # 44 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ios" 2 3
18201 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 1 3
18202 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
18206 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 1 3
18207 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18209 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwctype" 1 3
18210 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwctype" 3
18211 # 50 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwctype" 3
18212 # 1 "/usr/include/wctype.h" 1 3 4
18213 # 33 "/usr/include/wctype.h" 3 4
18214 # 1 "/usr/include/wchar.h" 1 3 4
18215 # 34 "/usr/include/wctype.h" 2 3 4
18216 # 52 "/usr/include/wctype.h" 3 4
18217 typedef unsigned long int wctype_t;
18218 # 71 "/usr/include/wctype.h" 3 4
18234 _ISwupper = ((__ISwupper) < 8 ? (
int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (
int) ((1UL << (__ISwupper)) >> 24)))),
18235 _ISwlower = ((__ISwlower) < 8 ? (
int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (
int) ((1UL << (__ISwlower)) >> 24)))),
18236 _ISwalpha = ((__ISwalpha) < 8 ? (
int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (
int) ((1UL << (__ISwalpha)) >> 24)))),
18237 _ISwdigit = ((__ISwdigit) < 8 ? (
int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (
int) ((1UL << (__ISwdigit)) >> 24)))),
18238 _ISwxdigit = ((__ISwxdigit) < 8 ? (
int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (
int) ((1UL << (__ISwxdigit)) >> 24)))),
18239 _ISwspace = ((__ISwspace) < 8 ? (
int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (
int) ((1UL << (__ISwspace)) >> 24)))),
18240 _ISwprint = ((__ISwprint) < 8 ? (
int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (
int) ((1UL << (__ISwprint)) >> 24)))),
18241 _ISwgraph = ((__ISwgraph) < 8 ? (
int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (
int) ((1UL << (__ISwgraph)) >> 24)))),
18242 _ISwblank = ((__ISwblank) < 8 ? (
int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (
int) ((1UL << (__ISwblank)) >> 24)))),
18243 _ISwcntrl = ((__ISwcntrl) < 8 ? (
int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (
int) ((1UL << (__ISwcntrl)) >> 24)))),
18244 _ISwpunct = ((__ISwpunct) < 8 ? (
int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (
int) ((1UL << (__ISwpunct)) >> 24)))),
18245 _ISwalnum = ((__ISwalnum) < 8 ? (
int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (
int) ((1UL << (__ISwalnum)) >> 24))))
18251 # 111 "/usr/include/wctype.h" 3 4
18252 extern int iswalnum (wint_t __wc)
throw ();
18258 extern int iswalpha (wint_t __wc)
throw ();
18261 extern int iswcntrl (wint_t __wc)
throw ();
18265 extern int iswdigit (wint_t __wc)
throw ();
18269 extern int iswgraph (wint_t __wc)
throw ();
18274 extern int iswlower (wint_t __wc)
throw ();
18277 extern int iswprint (wint_t __wc)
throw ();
18282 extern int iswpunct (wint_t __wc)
throw ();
18287 extern int iswspace (wint_t __wc)
throw ();
18292 extern int iswupper (wint_t __wc)
throw ();
18297 extern int iswxdigit (wint_t __wc)
throw ();
18303 extern int iswblank (wint_t __wc)
throw ();
18304 # 171 "/usr/include/wctype.h" 3 4
18305 extern wctype_t wctype (
const char *__property)
throw ();
18309 extern int iswctype (wint_t __wc, wctype_t __desc)
throw ();
18310 # 186 "/usr/include/wctype.h" 3 4
18311 typedef const __int32_t *wctrans_t;
18319 extern wint_t towlower (wint_t __wc)
throw ();
18322 extern wint_t towupper (wint_t __wc)
throw ();
18326 # 213 "/usr/include/wctype.h" 3 4
18332 extern wctrans_t wctrans (
const char *__property)
throw ();
18335 extern wint_t towctrans (wint_t __wc, wctrans_t __desc)
throw ();
18336 # 230 "/usr/include/wctype.h" 3 4
18337 extern int iswalnum_l (wint_t __wc,
__locale_t __locale)
throw ();
18343 extern int iswalpha_l (wint_t __wc,
__locale_t __locale)
throw ();
18346 extern int iswcntrl_l (wint_t __wc,
__locale_t __locale)
throw ();
18350 extern int iswdigit_l (wint_t __wc,
__locale_t __locale)
throw ();
18354 extern int iswgraph_l (wint_t __wc,
__locale_t __locale)
throw ();
18359 extern int iswlower_l (wint_t __wc,
__locale_t __locale)
throw ();
18362 extern int iswprint_l (wint_t __wc,
__locale_t __locale)
throw ();
18367 extern int iswpunct_l (wint_t __wc,
__locale_t __locale)
throw ();
18372 extern int iswspace_l (wint_t __wc,
__locale_t __locale)
throw ();
18377 extern int iswupper_l (wint_t __wc,
__locale_t __locale)
throw ();
18382 extern int iswxdigit_l (wint_t __wc,
__locale_t __locale)
throw ();
18387 extern int iswblank_l (wint_t __wc,
__locale_t __locale)
throw ();
18391 extern wctype_t wctype_l (
const char *__property,
__locale_t __locale)
18396 extern int iswctype_l (wint_t __wc, wctype_t __desc,
__locale_t __locale)
18405 extern wint_t towlower_l (wint_t __wc,
__locale_t __locale)
throw ();
18408 extern wint_t towupper_l (wint_t __wc,
__locale_t __locale)
throw ();
18412 extern wctrans_t wctrans_l (
const char *__property,
__locale_t __locale)
18416 extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc,
18422 # 51 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwctype" 2 3
18423 # 80 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwctype" 3
18451 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 2 3
18452 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cctype" 1 3
18453 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cctype" 3
18454 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 2 3
18455 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/ctype_base.h" 1 3
18456 # 36 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/ctype_base.h" 3
18457 namespace std __attribute__ ((__visibility__ ("default")))
18465 typedef const int* __to_type;
18469 typedef unsigned short mask;
18470 static const mask upper = _ISupper;
18471 static const mask lower = _ISlower;
18472 static const mask alpha = _ISalpha;
18473 static const mask digit = _ISdigit;
18474 static const mask xdigit = _ISxdigit;
18475 static const mask space = _ISspace;
18476 static const mask print = _ISprint;
18477 static const mask graph = _ISalpha | _ISdigit | _ISpunct;
18478 static const mask cntrl = _IScntrl;
18479 static const mask punct = _ISpunct;
18480 static const mask alnum = _ISalpha | _ISdigit;
18485 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 2 3
18492 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/streambuf_iterator.h" 1 3
18493 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/streambuf_iterator.h" 3
18498 namespace std __attribute__ ((__visibility__ ("default")))
18500 # 49 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/streambuf_iterator.h" 3
18501 template<
typename _CharT,
typename _Traits>
18502 class istreambuf_iterator
18503 :
public iterator<input_iterator_tag, _CharT, typename _Traits::off_type,
18516 typedef _CharT char_type;
18517 typedef _Traits traits_type;
18518 typedef typename _Traits::int_type int_type;
18519 typedef basic_streambuf<_CharT, _Traits> streambuf_type;
18520 typedef basic_istream<_CharT, _Traits> istream_type;
18523 template<
typename _CharT2>
18524 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
18525 ostreambuf_iterator<_CharT2> >::__type
18526 copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
18527 ostreambuf_iterator<_CharT2>);
18529 template<
bool _IsMove,
typename _CharT2>
18530 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
18532 __copy_move_a2(istreambuf_iterator<_CharT2>,
18533 istreambuf_iterator<_CharT2>, _CharT2*);
18535 template<
typename _CharT2>
18536 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
18537 istreambuf_iterator<_CharT2> >::__type
18538 find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
18549 mutable streambuf_type* _M_sbuf;
18550 mutable int_type _M_c;
18554 constexpr istreambuf_iterator() noexcept
18555 : _M_sbuf(0), _M_c(traits_type::eof()) { }
18558 istreambuf_iterator(
const istreambuf_iterator&) noexcept = default;
18560 ~istreambuf_iterator() = default;
18564 istreambuf_iterator(istream_type& __s) noexcept
18565 : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { }
18568 istreambuf_iterator(streambuf_type* __s) noexcept
18569 : _M_sbuf(__s), _M_c(traits_type::eof()) { }
18584 return traits_type::to_char_type(_M_get());
18588 istreambuf_iterator&
18597 _M_c = traits_type::eof();
18603 istreambuf_iterator
18610 istreambuf_iterator __old = *
this;
18613 __old._M_c = _M_sbuf->sbumpc();
18614 _M_c = traits_type::eof();
18624 equal(
const istreambuf_iterator& __b)
const
18625 {
return _M_at_eof() == __b._M_at_eof(); }
18631 const int_type __eof = traits_type::eof();
18632 int_type __ret = __eof;
18635 if (!traits_type::eq_int_type(_M_c, __eof))
18637 else if (!traits_type::eq_int_type((__ret = _M_sbuf->sgetc()),
18649 const int_type __eof = traits_type::eof();
18650 return traits_type::eq_int_type(_M_get(), __eof);
18654 template<
typename _CharT,
typename _Traits>
18656 operator==(
const istreambuf_iterator<_CharT, _Traits>& __a,
18657 const istreambuf_iterator<_CharT, _Traits>& __b)
18658 {
return __a.equal(__b); }
18660 template<
typename _CharT,
typename _Traits>
18662 operator!=(
const istreambuf_iterator<_CharT, _Traits>& __a,
18663 const istreambuf_iterator<_CharT, _Traits>& __b)
18664 {
return !__a.equal(__b); }
18667 template<
typename _CharT,
typename _Traits>
18668 class ostreambuf_iterator
18669 :
public iterator<output_iterator_tag, void, void, void, void>
18675 typedef _CharT char_type;
18676 typedef _Traits traits_type;
18677 typedef basic_streambuf<_CharT, _Traits> streambuf_type;
18678 typedef basic_ostream<_CharT, _Traits> ostream_type;
18681 template<
typename _CharT2>
18682 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
18683 ostreambuf_iterator<_CharT2> >::__type
18684 copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
18685 ostreambuf_iterator<_CharT2>);
18688 streambuf_type* _M_sbuf;
18693 ostreambuf_iterator(ostream_type& __s) noexcept
18694 : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { }
18697 ostreambuf_iterator(streambuf_type* __s) noexcept
18698 : _M_sbuf(__s), _M_failed(!_M_sbuf) { }
18701 ostreambuf_iterator&
18702 operator=(_CharT __c)
18705 _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof()))
18711 ostreambuf_iterator&
18716 ostreambuf_iterator&
18721 ostreambuf_iterator&
18727 failed() const noexcept
18728 {
return _M_failed; }
18730 ostreambuf_iterator&
18731 _M_put(
const _CharT* __ws, streamsize __len)
18733 if (__builtin_expect(!_M_failed,
true)
18734 && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len,
18742 template<
typename _CharT>
18743 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
18744 ostreambuf_iterator<_CharT> >::__type
18745 copy(istreambuf_iterator<_CharT> __first,
18746 istreambuf_iterator<_CharT> __last,
18747 ostreambuf_iterator<_CharT> __result)
18749 if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed)
18752 __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof);
18754 __result._M_failed =
true;
18759 template<
bool _IsMove,
typename _CharT>
18760 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
18761 ostreambuf_iterator<_CharT> >::__type
18762 __copy_move_a2(_CharT* __first, _CharT* __last,
18763 ostreambuf_iterator<_CharT> __result)
18765 const streamsize __num = __last - __first;
18767 __result._M_put(__first, __num);
18771 template<
bool _IsMove,
typename _CharT>
18772 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
18773 ostreambuf_iterator<_CharT> >::__type
18774 __copy_move_a2(
const _CharT* __first,
const _CharT* __last,
18775 ostreambuf_iterator<_CharT> __result)
18777 const streamsize __num = __last - __first;
18779 __result._M_put(__first, __num);
18783 template<
bool _IsMove,
typename _CharT>
18784 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
18786 __copy_move_a2(istreambuf_iterator<_CharT> __first,
18787 istreambuf_iterator<_CharT> __last, _CharT* __result)
18789 typedef istreambuf_iterator<_CharT> __is_iterator_type;
18790 typedef typename __is_iterator_type::traits_type traits_type;
18791 typedef typename __is_iterator_type::streambuf_type streambuf_type;
18792 typedef typename traits_type::int_type int_type;
18794 if (__first._M_sbuf && !__last._M_sbuf)
18796 streambuf_type* __sb = __first._M_sbuf;
18797 int_type __c = __sb->sgetc();
18798 while (!traits_type::eq_int_type(__c, traits_type::eof()))
18800 const streamsize __n = __sb->egptr() - __sb->gptr();
18803 traits_type::copy(__result, __sb->gptr(), __n);
18804 __sb->__safe_gbump(__n);
18806 __c = __sb->underflow();
18810 *__result++ = traits_type::to_char_type(__c);
18811 __c = __sb->snextc();
18818 template<
typename _CharT>
18819 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
18820 istreambuf_iterator<_CharT> >::__type
18821 find(istreambuf_iterator<_CharT> __first,
18822 istreambuf_iterator<_CharT> __last,
const _CharT& __val)
18824 typedef istreambuf_iterator<_CharT> __is_iterator_type;
18825 typedef typename __is_iterator_type::traits_type traits_type;
18826 typedef typename __is_iterator_type::streambuf_type streambuf_type;
18827 typedef typename traits_type::int_type int_type;
18829 if (__first._M_sbuf && !__last._M_sbuf)
18831 const int_type __ival = traits_type::to_int_type(__val);
18832 streambuf_type* __sb = __first._M_sbuf;
18833 int_type __c = __sb->sgetc();
18834 while (!traits_type::eq_int_type(__c, traits_type::eof())
18835 && !traits_type::eq_int_type(__c, __ival))
18837 streamsize __n = __sb->egptr() - __sb->gptr();
18840 const _CharT* __p = traits_type::find(__sb->gptr(),
18843 __n = __p - __sb->gptr();
18844 __sb->__safe_gbump(__n);
18845 __c = __sb->sgetc();
18848 __c = __sb->snextc();
18851 if (!traits_type::eq_int_type(__c, traits_type::eof()))
18852 __first._M_c = __c;
18854 __first._M_sbuf = 0;
18863 # 49 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 2 3
18865 namespace std __attribute__ ((__visibility__ ("default")))
18867 # 64 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18868 template<
typename _Tp>
18870 __convert_to_v(
const char*, _Tp&, ios_base::iostate&,
18871 const __c_locale&) throw();
18876 __convert_to_v(const
char*,
float&, ios_base::iostate&,
18877 const __c_locale&) throw();
18881 __convert_to_v(const
char*,
double&, ios_base::iostate&,
18882 const __c_locale&) throw();
18886 __convert_to_v(const
char*,
long double&, ios_base::iostate&,
18887 const __c_locale&) throw();
18891 template<typename _CharT, typename _Traits>
18895 _S_pad(ios_base& __io, _CharT __fill, _CharT* __news,
18896 const _CharT* __olds, streamsize __newlen, streamsize __oldlen);
18904 template<
typename _CharT>
18906 __add_grouping(_CharT* __s, _CharT __sep,
18907 const char* __gbeg,
size_t __gsize,
18908 const _CharT* __first,
const _CharT* __last);
18913 template<
typename _CharT>
18915 ostreambuf_iterator<_CharT>
18916 __write(ostreambuf_iterator<_CharT> __s,
const _CharT* __ws,
int __len)
18918 __s._M_put(__ws, __len);
18923 template<
typename _CharT,
typename _OutIter>
18926 __write(_OutIter __s,
const _CharT* __ws,
int __len)
18928 for (
int __j = 0; __j < __len; __j++, ++__s)
18932 # 142 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18933 template<
typename _CharT>
18934 class __ctype_abstract_base :
public locale::facet,
public ctype_base
18939 typedef _CharT char_type;
18940 # 161 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18942 is(mask __m, char_type __c)
const
18943 {
return this->do_is(__m, __c); }
18944 # 178 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18946 is(
const char_type *__lo,
const char_type *__hi, mask *__vec)
const
18947 {
return this->do_is(__lo, __hi, __vec); }
18948 # 194 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18950 scan_is(mask __m,
const char_type* __lo,
const char_type* __hi)
const
18951 {
return this->do_scan_is(__m, __lo, __hi); }
18952 # 210 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18954 scan_not(mask __m,
const char_type* __lo,
const char_type* __hi)
const
18955 {
return this->do_scan_not(__m, __lo, __hi); }
18956 # 224 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18958 toupper(char_type __c)
const
18959 {
return this->do_toupper(__c); }
18960 # 239 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18962 toupper(char_type *__lo,
const char_type* __hi)
const
18963 {
return this->do_toupper(__lo, __hi); }
18964 # 253 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18966 tolower(char_type __c)
const
18967 {
return this->do_tolower(__c); }
18968 # 268 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18970 tolower(char_type* __lo,
const char_type* __hi)
const
18971 {
return this->do_tolower(__lo, __hi); }
18972 # 285 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18974 widen(
char __c)
const
18975 {
return this->do_widen(__c); }
18976 # 304 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18978 widen(
const char* __lo,
const char* __hi, char_type* __to)
const
18979 {
return this->do_widen(__lo, __hi, __to); }
18980 # 323 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18982 narrow(char_type __c,
char __dfault)
const
18983 {
return this->do_narrow(__c, __dfault); }
18984 # 345 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18986 narrow(
const char_type* __lo,
const char_type* __hi,
18987 char __dfault,
char* __to)
const
18988 {
return this->do_narrow(__lo, __hi, __dfault, __to); }
18992 __ctype_abstract_base(
size_t __refs = 0): facet(__refs) { }
18995 ~__ctype_abstract_base() { }
18996 # 370 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18998 do_is(mask __m, char_type __c)
const = 0;
18999 # 389 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19000 virtual const char_type*
19001 do_is(
const char_type* __lo,
const char_type* __hi,
19002 mask* __vec)
const = 0;
19003 # 408 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19004 virtual const char_type*
19005 do_scan_is(mask __m,
const char_type* __lo,
19006 const char_type* __hi)
const = 0;
19007 # 427 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19008 virtual const char_type*
19009 do_scan_not(mask __m,
const char_type* __lo,
19010 const char_type* __hi)
const = 0;
19011 # 445 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19013 do_toupper(char_type __c)
const = 0;
19014 # 462 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19015 virtual const char_type*
19016 do_toupper(char_type* __lo,
const char_type* __hi)
const = 0;
19017 # 478 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19019 do_tolower(char_type __c)
const = 0;
19020 # 495 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19021 virtual const char_type*
19022 do_tolower(char_type* __lo,
const char_type* __hi)
const = 0;
19023 # 514 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19025 do_widen(
char __c)
const = 0;
19026 # 535 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19027 virtual const char*
19028 do_widen(
const char* __lo,
const char* __hi, char_type* __to)
const = 0;
19029 # 556 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19031 do_narrow(char_type __c,
char __dfault)
const = 0;
19032 # 581 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19033 virtual const char_type*
19034 do_narrow(
const char_type* __lo,
const char_type* __hi,
19035 char __dfault,
char* __to)
const = 0;
19037 # 604 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19038 template<
typename _CharT>
19039 class ctype :
public __ctype_abstract_base<_CharT>
19043 typedef _CharT char_type;
19044 typedef typename __ctype_abstract_base<_CharT>::mask mask;
19047 static locale::id id;
19050 ctype(
size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { }
19057 do_is(mask __m, char_type __c)
const;
19059 virtual const char_type*
19060 do_is(
const char_type* __lo,
const char_type* __hi, mask* __vec)
const;
19062 virtual const char_type*
19063 do_scan_is(mask __m,
const char_type* __lo,
const char_type* __hi)
const;
19065 virtual const char_type*
19066 do_scan_not(mask __m,
const char_type* __lo,
19067 const char_type* __hi)
const;
19070 do_toupper(char_type __c)
const;
19072 virtual const char_type*
19073 do_toupper(char_type* __lo,
const char_type* __hi)
const;
19076 do_tolower(char_type __c)
const;
19078 virtual const char_type*
19079 do_tolower(char_type* __lo,
const char_type* __hi)
const;
19082 do_widen(
char __c)
const;
19084 virtual const char*
19085 do_widen(
const char* __lo,
const char* __hi, char_type* __dest)
const;
19088 do_narrow(char_type,
char __dfault)
const;
19090 virtual const char_type*
19091 do_narrow(
const char_type* __lo,
const char_type* __hi,
19092 char __dfault,
char* __to)
const;
19095 template<
typename _CharT>
19096 locale::id ctype<_CharT>::id;
19097 # 673 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19099 class ctype<char> :
public locale::facet,
public ctype_base
19104 typedef char char_type;
19108 __c_locale _M_c_locale_ctype;
19110 __to_type _M_toupper;
19111 __to_type _M_tolower;
19112 const mask* _M_table;
19113 mutable char _M_widen_ok;
19114 mutable char _M_widen[1 +
static_cast<unsigned char>(-1)];
19115 mutable char _M_narrow[1 +
static_cast<unsigned char>(-1)];
19116 mutable char _M_narrow_ok;
19121 static locale::id id;
19123 static const size_t table_size = 1 +
static_cast<unsigned char>(-1);
19124 # 710 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19126 ctype(
const mask* __table = 0,
bool __del =
false,
size_t __refs = 0);
19127 # 723 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19129 ctype(__c_locale __cloc,
const mask* __table = 0,
bool __del =
false,
19130 size_t __refs = 0);
19131 # 736 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19133 is(mask __m,
char __c)
const;
19134 # 751 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19136 is(
const char* __lo,
const char* __hi, mask* __vec)
const;
19137 # 765 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19139 scan_is(mask __m,
const char* __lo,
const char* __hi)
const;
19140 # 779 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19142 scan_not(mask __m,
const char* __lo,
const char* __hi)
const;
19143 # 794 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19145 toupper(char_type __c)
const
19146 {
return this->do_toupper(__c); }
19147 # 811 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19149 toupper(char_type *__lo,
const char_type* __hi)
const
19150 {
return this->do_toupper(__lo, __hi); }
19151 # 827 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19153 tolower(char_type __c)
const
19154 {
return this->do_tolower(__c); }
19155 # 844 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19157 tolower(char_type* __lo,
const char_type* __hi)
const
19158 {
return this->do_tolower(__lo, __hi); }
19159 # 864 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19161 widen(
char __c)
const
19164 return _M_widen[
static_cast<unsigned char>(__c)];
19165 this->_M_widen_init();
19166 return this->do_widen(__c);
19168 # 891 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19170 widen(
const char* __lo,
const char* __hi, char_type* __to)
const
19172 if (_M_widen_ok == 1)
19174 __builtin_memcpy(__to, __lo, __hi - __lo);
19179 return this->do_widen(__lo, __hi, __to);
19181 # 922 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19183 narrow(char_type __c,
char __dfault)
const
19185 if (_M_narrow[static_cast<unsigned char>(__c)])
19186 return _M_narrow[
static_cast<unsigned char>(__c)];
19187 const char __t = do_narrow(__c, __dfault);
19188 if (__t != __dfault)
19189 _M_narrow[
static_cast<unsigned char>(__c)] = __t;
19192 # 955 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19194 narrow(
const char_type* __lo,
const char_type* __hi,
19195 char __dfault,
char* __to)
const
19197 if (__builtin_expect(_M_narrow_ok == 1,
true))
19199 __builtin_memcpy(__to, __lo, __hi - __lo);
19204 return this->do_narrow(__lo, __hi, __dfault, __to);
19212 table()
const throw()
19213 {
return _M_table; }
19217 classic_table() throw();
19228 # 1004 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19230 do_toupper(char_type __c)
const;
19231 # 1021 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19232 virtual const char_type*
19233 do_toupper(char_type* __lo,
const char_type* __hi)
const;
19234 # 1037 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19236 do_tolower(char_type __c)
const;
19237 # 1054 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19238 virtual const char_type*
19239 do_tolower(char_type* __lo,
const char_type* __hi)
const;
19240 # 1074 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19242 do_widen(
char __c)
const
19244 # 1097 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19245 virtual const char*
19246 do_widen(
const char* __lo,
const char* __hi, char_type* __to)
const
19248 __builtin_memcpy(__to, __lo, __hi - __lo);
19251 # 1123 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19253 do_narrow(char_type __c,
char __dfault)
const
19255 # 1149 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19256 virtual const char_type*
19257 do_narrow(
const char_type* __lo,
const char_type* __hi,
19258 char __dfault,
char* __to)
const
19260 __builtin_memcpy(__to, __lo, __hi - __lo);
19265 void _M_narrow_init()
const;
19266 void _M_widen_init()
const;
19268 # 1174 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19270 class ctype<wchar_t> :
public __ctype_abstract_base<wchar_t>
19275 typedef wchar_t char_type;
19276 typedef wctype_t __wmask_type;
19279 __c_locale _M_c_locale_ctype;
19283 char _M_narrow[128];
19284 wint_t _M_widen[1 +
static_cast<unsigned char>(-1)];
19288 __wmask_type _M_wmask[16];
19293 static locale::id id;
19294 # 1207 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19296 ctype(
size_t __refs = 0);
19297 # 1218 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19299 ctype(__c_locale __cloc,
size_t __refs = 0);
19303 _M_convert_to_wmask(
const mask __m)
const throw();
19308 # 1242 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19310 do_is(mask __m, char_type __c)
const;
19311 # 1261 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19312 virtual const char_type*
19313 do_is(
const char_type* __lo,
const char_type* __hi, mask* __vec)
const;
19314 # 1279 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19315 virtual const char_type*
19316 do_scan_is(mask __m,
const char_type* __lo,
const char_type* __hi)
const;
19317 # 1297 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19318 virtual const char_type*
19319 do_scan_not(mask __m,
const char_type* __lo,
19320 const char_type* __hi)
const;
19321 # 1314 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19323 do_toupper(char_type __c)
const;
19324 # 1331 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19325 virtual const char_type*
19326 do_toupper(char_type* __lo,
const char_type* __hi)
const;
19327 # 1347 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19329 do_tolower(char_type __c)
const;
19330 # 1364 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19331 virtual const char_type*
19332 do_tolower(char_type* __lo,
const char_type* __hi)
const;
19333 # 1384 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19335 do_widen(
char __c)
const;
19336 # 1406 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19337 virtual const char*
19338 do_widen(
const char* __lo,
const char* __hi, char_type* __to)
const;
19339 # 1429 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19341 do_narrow(char_type __c,
char __dfault)
const;
19342 # 1455 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19343 virtual const char_type*
19344 do_narrow(
const char_type* __lo,
const char_type* __hi,
19345 char __dfault,
char* __to)
const;
19349 _M_initialize_ctype() throw();
19354 template<typename _CharT>
19355 class ctype_byname : public ctype<_CharT>
19358 typedef typename ctype<_CharT>::mask mask;
19361 ctype_byname(
const char* __s,
size_t __refs = 0);
19365 ~ctype_byname() { };
19370 class ctype_byname<char> :
public ctype<char>
19374 ctype_byname(
const char* __s,
size_t __refs = 0);
19383 class ctype_byname<wchar_t> :
public ctype<wchar_t>
19387 ctype_byname(
const char* __s,
size_t __refs = 0);
19400 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/ctype_inline.h" 1 3
19401 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/ctype_inline.h" 3
19402 namespace std __attribute__ ((__visibility__ ("default")))
19408 is(mask __m,
char __c)
const
19409 {
return _M_table[
static_cast<unsigned char>(__c)] & __m; }
19413 is(
const char* __low,
const char* __high, mask* __vec)
const
19415 while (__low < __high)
19416 *__vec++ = _M_table[
static_cast<unsigned char>(*__low++)];
19422 scan_is(mask __m,
const char* __low,
const char* __high)
const
19424 while (__low < __high
19425 && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
19432 scan_not(mask __m,
const char* __low,
const char* __high)
const
19434 while (__low < __high
19435 && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
19442 # 1512 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 2 3
19444 namespace std __attribute__ ((__visibility__ ("default")))
19461 _S_odigits_end = _S_odigits + 16,
19462 _S_oudigits = _S_odigits_end,
19463 _S_oudigits_end = _S_oudigits + 16,
19464 _S_oe = _S_odigits + 14,
19465 _S_oE = _S_oudigits + 14,
19466 _S_oend = _S_oudigits_end
19474 static const char* _S_atoms_out;
19478 static const char* _S_atoms_in;
19487 _S_ie = _S_izero + 14,
19488 _S_iE = _S_izero + 20,
19495 _S_format_float(
const ios_base& __io,
char* __fptr,
char __mod)
throw();
19498 template<
typename _CharT>
19499 struct __numpunct_cache :
public locale::facet
19501 const char* _M_grouping;
19502 size_t _M_grouping_size;
19503 bool _M_use_grouping;
19504 const _CharT* _M_truename;
19505 size_t _M_truename_size;
19506 const _CharT* _M_falsename;
19507 size_t _M_falsename_size;
19508 _CharT _M_decimal_point;
19509 _CharT _M_thousands_sep;
19515 _CharT _M_atoms_out[__num_base::_S_oend];
19521 _CharT _M_atoms_in[__num_base::_S_iend];
19525 __numpunct_cache(
size_t __refs = 0)
19526 : facet(__refs), _M_grouping(0), _M_grouping_size(0),
19527 _M_use_grouping(false),
19528 _M_truename(0), _M_truename_size(0), _M_falsename(0),
19529 _M_falsename_size(0), _M_decimal_point(_CharT()),
19530 _M_thousands_sep(_CharT()), _M_allocated(false)
19533 ~__numpunct_cache();
19536 _M_cache(
const locale& __loc);
19540 operator=(
const __numpunct_cache&);
19543 __numpunct_cache(
const __numpunct_cache&);
19546 template<
typename _CharT>
19547 __numpunct_cache<_CharT>::~__numpunct_cache()
19551 delete [] _M_grouping;
19552 delete [] _M_truename;
19553 delete [] _M_falsename;
19556 # 1640 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19557 template<
typename _CharT>
19558 class numpunct :
public locale::facet
19564 typedef _CharT char_type;
19565 typedef basic_string<_CharT> string_type;
19567 typedef __numpunct_cache<_CharT> __cache_type;
19570 __cache_type* _M_data;
19574 static locale::id id;
19582 numpunct(
size_t __refs = 0)
19583 : facet(__refs), _M_data(0)
19584 { _M_initialize_numpunct(); }
19585 # 1678 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19587 numpunct(__cache_type* __cache,
size_t __refs = 0)
19588 : facet(__refs), _M_data(__cache)
19589 { _M_initialize_numpunct(); }
19590 # 1692 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19592 numpunct(__c_locale __cloc,
size_t __refs = 0)
19593 : facet(__refs), _M_data(0)
19594 { _M_initialize_numpunct(__cloc); }
19595 # 1706 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19597 decimal_point()
const
19598 {
return this->do_decimal_point(); }
19599 # 1719 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19601 thousands_sep()
const
19602 {
return this->do_thousands_sep(); }
19603 # 1750 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19606 {
return this->do_grouping(); }
19607 # 1763 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19610 {
return this->do_truename(); }
19611 # 1776 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19614 {
return this->do_falsename(); }
19620 # 1793 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19622 do_decimal_point()
const
19623 {
return _M_data->_M_decimal_point; }
19624 # 1805 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19626 do_thousands_sep()
const
19627 {
return _M_data->_M_thousands_sep; }
19628 # 1818 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19630 do_grouping()
const
19631 {
return _M_data->_M_grouping; }
19632 # 1831 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19633 virtual string_type
19634 do_truename()
const
19635 {
return _M_data->_M_truename; }
19636 # 1844 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19637 virtual string_type
19638 do_falsename()
const
19639 {
return _M_data->_M_falsename; }
19643 _M_initialize_numpunct(__c_locale __cloc = 0);
19646 template<
typename _CharT>
19647 locale::id numpunct<_CharT>::id;
19650 numpunct<char>::~numpunct();
19654 numpunct<char>::_M_initialize_numpunct(__c_locale __cloc);
19658 numpunct<wchar_t>::~numpunct();
19662 numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc);
19666 template<
typename _CharT>
19667 class numpunct_byname :
public numpunct<_CharT>
19670 typedef _CharT char_type;
19671 typedef basic_string<_CharT> string_type;
19674 numpunct_byname(
const char* __s,
size_t __refs = 0)
19675 : numpunct<_CharT>(__refs)
19677 if (__builtin_strcmp(__s,
"C") != 0
19678 && __builtin_strcmp(__s,
"POSIX") != 0)
19681 this->_S_create_c_locale(__tmp, __s);
19682 this->_M_initialize_numpunct(__tmp);
19683 this->_S_destroy_c_locale(__tmp);
19689 ~numpunct_byname() { }
19691 # 1914 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19692 template<
typename _CharT,
typename _InIter>
19693 class num_get :
public locale::facet
19699 typedef _CharT char_type;
19700 typedef _InIter iter_type;
19704 static locale::id id;
19705 # 1935 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19707 num_get(
size_t __refs = 0) : facet(__refs) { }
19708 # 1961 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19710 get(iter_type __in, iter_type __end, ios_base& __io,
19711 ios_base::iostate& __err,
bool& __v)
const
19712 {
return this->do_get(__in, __end, __io, __err, __v); }
19713 # 1998 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19715 get(iter_type __in, iter_type __end, ios_base& __io,
19716 ios_base::iostate& __err,
long& __v)
const
19717 {
return this->do_get(__in, __end, __io, __err, __v); }
19720 get(iter_type __in, iter_type __end, ios_base& __io,
19721 ios_base::iostate& __err,
unsigned short& __v)
const
19722 {
return this->do_get(__in, __end, __io, __err, __v); }
19725 get(iter_type __in, iter_type __end, ios_base& __io,
19726 ios_base::iostate& __err,
unsigned int& __v)
const
19727 {
return this->do_get(__in, __end, __io, __err, __v); }
19730 get(iter_type __in, iter_type __end, ios_base& __io,
19731 ios_base::iostate& __err,
unsigned long& __v)
const
19732 {
return this->do_get(__in, __end, __io, __err, __v); }
19736 get(iter_type __in, iter_type __end, ios_base& __io,
19737 ios_base::iostate& __err,
long long& __v)
const
19738 {
return this->do_get(__in, __end, __io, __err, __v); }
19741 get(iter_type __in, iter_type __end, ios_base& __io,
19742 ios_base::iostate& __err,
unsigned long long& __v)
const
19743 {
return this->do_get(__in, __end, __io, __err, __v); }
19744 # 2058 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19746 get(iter_type __in, iter_type __end, ios_base& __io,
19747 ios_base::iostate& __err,
float& __v)
const
19748 {
return this->do_get(__in, __end, __io, __err, __v); }
19751 get(iter_type __in, iter_type __end, ios_base& __io,
19752 ios_base::iostate& __err,
double& __v)
const
19753 {
return this->do_get(__in, __end, __io, __err, __v); }
19756 get(iter_type __in, iter_type __end, ios_base& __io,
19757 ios_base::iostate& __err,
long double& __v)
const
19758 {
return this->do_get(__in, __end, __io, __err, __v); }
19759 # 2101 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19761 get(iter_type __in, iter_type __end, ios_base& __io,
19762 ios_base::iostate& __err,
void*& __v)
const
19763 {
return this->do_get(__in, __end, __io, __err, __v); }
19767 virtual ~num_get() { }
19770 _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&,
19773 template<
typename _ValueT>
19775 _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&,
19778 template<
typename _CharT2>
19779 typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
int>::__type
19780 _M_find(
const _CharT2*,
size_t __len, _CharT2 __c)
const
19785 if (__c >= _CharT2(
'0') && __c < _CharT2(_CharT2(
'0') + __len))
19786 __ret = __c - _CharT2(
'0');
19790 if (__c >= _CharT2(
'0') && __c <= _CharT2(
'9'))
19791 __ret = __c - _CharT2(
'0');
19792 else if (__c >= _CharT2(
'a') && __c <= _CharT2(
'f'))
19793 __ret = 10 + (__c - _CharT2(
'a'));
19794 else if (__c >= _CharT2(
'A') && __c <= _CharT2(
'F'))
19795 __ret = 10 + (__c - _CharT2(
'A'));
19800 template<
typename _CharT2>
19801 typename __gnu_cxx::__enable_if<!__is_char<_CharT2>::__value,
19803 _M_find(
const _CharT2* __zero,
size_t __len, _CharT2 __c)
const
19806 const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c);
19809 __ret = __q - __zero;
19815 # 2172 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19817 do_get(iter_type, iter_type, ios_base&, ios_base::iostate&,
bool&)
const;
19820 do_get(iter_type __beg, iter_type __end, ios_base& __io,
19821 ios_base::iostate& __err,
long& __v)
const
19822 {
return _M_extract_int(__beg, __end, __io, __err, __v); }
19825 do_get(iter_type __beg, iter_type __end, ios_base& __io,
19826 ios_base::iostate& __err,
unsigned short& __v)
const
19827 {
return _M_extract_int(__beg, __end, __io, __err, __v); }
19830 do_get(iter_type __beg, iter_type __end, ios_base& __io,
19831 ios_base::iostate& __err,
unsigned int& __v)
const
19832 {
return _M_extract_int(__beg, __end, __io, __err, __v); }
19835 do_get(iter_type __beg, iter_type __end, ios_base& __io,
19836 ios_base::iostate& __err,
unsigned long& __v)
const
19837 {
return _M_extract_int(__beg, __end, __io, __err, __v); }
19841 do_get(iter_type __beg, iter_type __end, ios_base& __io,
19842 ios_base::iostate& __err,
long long& __v)
const
19843 {
return _M_extract_int(__beg, __end, __io, __err, __v); }
19846 do_get(iter_type __beg, iter_type __end, ios_base& __io,
19847 ios_base::iostate& __err,
unsigned long long& __v)
const
19848 {
return _M_extract_int(__beg, __end, __io, __err, __v); }
19852 do_get(iter_type, iter_type, ios_base&, ios_base::iostate&,
float&)
const;
19855 do_get(iter_type, iter_type, ios_base&, ios_base::iostate&,
19865 do_get(iter_type, iter_type, ios_base&, ios_base::iostate&,
19866 long double&)
const;
19870 do_get(iter_type, iter_type, ios_base&, ios_base::iostate&,
void*&)
const;
19871 # 2235 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19874 template<
typename _CharT,
typename _InIter>
19875 locale::id num_get<_CharT, _InIter>::id;
19876 # 2253 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19877 template<
typename _CharT,
typename _OutIter>
19878 class num_put :
public locale::facet
19884 typedef _CharT char_type;
19885 typedef _OutIter iter_type;
19889 static locale::id id;
19890 # 2274 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19892 num_put(
size_t __refs = 0) : facet(__refs) { }
19893 # 2292 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19895 put(iter_type __s, ios_base& __io, char_type __fill,
bool __v)
const
19896 {
return this->do_put(__s, __io, __fill, __v); }
19897 # 2334 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19899 put(iter_type __s, ios_base& __io, char_type __fill,
long __v)
const
19900 {
return this->do_put(__s, __io, __fill, __v); }
19903 put(iter_type __s, ios_base& __io, char_type __fill,
19904 unsigned long __v)
const
19905 {
return this->do_put(__s, __io, __fill, __v); }
19909 put(iter_type __s, ios_base& __io, char_type __fill,
long long __v)
const
19910 {
return this->do_put(__s, __io, __fill, __v); }
19913 put(iter_type __s, ios_base& __io, char_type __fill,
19914 unsigned long long __v)
const
19915 {
return this->do_put(__s, __io, __fill, __v); }
19916 # 2397 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19918 put(iter_type __s, ios_base& __io, char_type __fill,
double __v)
const
19919 {
return this->do_put(__s, __io, __fill, __v); }
19922 put(iter_type __s, ios_base& __io, char_type __fill,
19923 long double __v)
const
19924 {
return this->do_put(__s, __io, __fill, __v); }
19925 # 2422 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19927 put(iter_type __s, ios_base& __io, char_type __fill,
19928 const void* __v)
const
19929 {
return this->do_put(__s, __io, __fill, __v); }
19932 template<
typename _ValueT>
19934 _M_insert_float(iter_type, ios_base& __io, char_type __fill,
19935 char __mod, _ValueT __v)
const;
19938 _M_group_float(
const char* __grouping,
size_t __grouping_size,
19939 char_type __sep,
const char_type* __p, char_type* __new,
19940 char_type* __cs,
int& __len)
const;
19942 template<
typename _ValueT>
19944 _M_insert_int(iter_type, ios_base& __io, char_type __fill,
19945 _ValueT __v)
const;
19948 _M_group_int(
const char* __grouping,
size_t __grouping_size,
19949 char_type __sep, ios_base& __io, char_type* __new,
19950 char_type* __cs,
int& __len)
const;
19953 _M_pad(char_type __fill, streamsize __w, ios_base& __io,
19954 char_type* __new,
const char_type* __cs,
int& __len)
const;
19959 # 2470 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19961 do_put(iter_type __s, ios_base& __io, char_type __fill,
bool __v)
const;
19964 do_put(iter_type __s, ios_base& __io, char_type __fill,
long __v)
const
19965 {
return _M_insert_int(__s, __io, __fill, __v); }
19968 do_put(iter_type __s, ios_base& __io, char_type __fill,
19969 unsigned long __v)
const
19970 {
return _M_insert_int(__s, __io, __fill, __v); }
19974 do_put(iter_type __s, ios_base& __io, char_type __fill,
19975 long long __v)
const
19976 {
return _M_insert_int(__s, __io, __fill, __v); }
19979 do_put(iter_type __s, ios_base& __io, char_type __fill,
19980 unsigned long long __v)
const
19981 {
return _M_insert_int(__s, __io, __fill, __v); }
19985 do_put(iter_type, ios_base&, char_type,
double)
const;
19993 do_put(iter_type, ios_base&, char_type,
long double)
const;
19997 do_put(iter_type, ios_base&, char_type,
const void*)
const;
20007 template <
typename _CharT,
typename _OutIter>
20008 locale::id num_put<_CharT, _OutIter>::id;
20009 # 2528 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
20010 template<
typename _CharT>
20012 isspace(_CharT __c,
const locale& __loc)
20013 {
return use_facet<ctype<_CharT> >(__loc).is(ctype_base::space, __c); }
20016 template<
typename _CharT>
20018 isprint(_CharT __c,
const locale& __loc)
20019 {
return use_facet<ctype<_CharT> >(__loc).is(ctype_base::print, __c); }
20022 template<
typename _CharT>
20024 iscntrl(_CharT __c,
const locale& __loc)
20025 {
return use_facet<ctype<_CharT> >(__loc).is(ctype_base::cntrl, __c); }
20028 template<
typename _CharT>
20030 isupper(_CharT __c,
const locale& __loc)
20031 {
return use_facet<ctype<_CharT> >(__loc).is(ctype_base::upper, __c); }
20034 template<
typename _CharT>
20036 islower(_CharT __c,
const locale& __loc)
20037 {
return use_facet<ctype<_CharT> >(__loc).is(ctype_base::lower, __c); }
20040 template<
typename _CharT>
20042 isalpha(_CharT __c,
const locale& __loc)
20043 {
return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alpha, __c); }
20046 template<
typename _CharT>
20048 isdigit(_CharT __c,
const locale& __loc)
20049 {
return use_facet<ctype<_CharT> >(__loc).is(ctype_base::digit, __c); }
20052 template<
typename _CharT>
20054 ispunct(_CharT __c,
const locale& __loc)
20055 {
return use_facet<ctype<_CharT> >(__loc).is(ctype_base::punct, __c); }
20058 template<
typename _CharT>
20060 isxdigit(_CharT __c,
const locale& __loc)
20061 {
return use_facet<ctype<_CharT> >(__loc).is(ctype_base::xdigit, __c); }
20064 template<
typename _CharT>
20066 isalnum(_CharT __c,
const locale& __loc)
20067 {
return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alnum, __c); }
20070 template<
typename _CharT>
20072 isgraph(_CharT __c,
const locale& __loc)
20073 {
return use_facet<ctype<_CharT> >(__loc).is(ctype_base::graph, __c); }
20076 template<
typename _CharT>
20078 toupper(_CharT __c,
const locale& __loc)
20079 {
return use_facet<ctype<_CharT> >(__loc).toupper(__c); }
20082 template<
typename _CharT>
20084 tolower(_CharT __c,
const locale& __loc)
20085 {
return use_facet<ctype<_CharT> >(__loc).tolower(__c); }
20091 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 1 3
20092 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 3
20094 namespace std __attribute__ ((__visibility__ ("default")))
20100 template<
typename _Facet>
20104 operator() (
const locale& __loc)
const;
20108 template<
typename _CharT>
20109 struct __use_cache<__numpunct_cache<_CharT> >
20111 const __numpunct_cache<_CharT>*
20112 operator() (
const locale& __loc)
const
20114 const size_t __i = numpunct<_CharT>::id._M_id();
20115 const locale::facet** __caches = __loc._M_impl->_M_caches;
20116 if (!__caches[__i])
20118 __numpunct_cache<_CharT>* __tmp = 0;
20121 __tmp =
new __numpunct_cache<_CharT>;
20122 __tmp->_M_cache(__loc);
20129 __loc._M_impl->_M_install_cache(__tmp, __i);
20131 return static_cast<const __numpunct_cache<_CharT>*
>(__caches[__i]);
20135 template<
typename _CharT>
20137 __numpunct_cache<_CharT>::_M_cache(
const locale& __loc)
20139 _M_allocated =
true;
20141 const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
20143 char* __grouping = 0;
20144 _CharT* __truename = 0;
20145 _CharT* __falsename = 0;
20148 _M_grouping_size = __np.grouping().size();
20149 __grouping =
new char[_M_grouping_size];
20150 __np.grouping().copy(__grouping, _M_grouping_size);
20151 _M_grouping = __grouping;
20152 _M_use_grouping = (_M_grouping_size
20153 &&
static_cast<signed char>(_M_grouping[0]) > 0
20155 != __gnu_cxx::__numeric_traits<char>::__max));
20157 _M_truename_size = __np.truename().size();
20158 __truename =
new _CharT[_M_truename_size];
20159 __np.truename().copy(__truename, _M_truename_size);
20160 _M_truename = __truename;
20162 _M_falsename_size = __np.falsename().size();
20163 __falsename =
new _CharT[_M_falsename_size];
20164 __np.falsename().copy(__falsename, _M_falsename_size);
20165 _M_falsename = __falsename;
20167 _M_decimal_point = __np.decimal_point();
20168 _M_thousands_sep = __np.thousands_sep();
20170 const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__loc);
20171 __ct.widen(__num_base::_S_atoms_out,
20172 __num_base::_S_atoms_out
20173 + __num_base::_S_oend, _M_atoms_out);
20174 __ct.widen(__num_base::_S_atoms_in,
20175 __num_base::_S_atoms_in
20176 + __num_base::_S_iend, _M_atoms_in);
20180 delete [] __grouping;
20181 delete [] __truename;
20182 delete [] __falsename;
20186 # 136 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 3
20187 __attribute__ ((__pure__)) bool
20188 __verify_grouping(const
char* __grouping,
size_t __grouping_size,
20189 const
string& __grouping_tmp) throw ();
20193 template<typename _CharT, typename _InIter>
20195 num_get<_CharT, _InIter>::
20196 _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io,
20197 ios_base::iostate& __err,
string& __xtrc)
const
20199 typedef char_traits<_CharT> __traits_type;
20200 typedef __numpunct_cache<_CharT> __cache_type;
20201 __use_cache<__cache_type> __uc;
20202 const locale& __loc = __io._M_getloc();
20203 const __cache_type* __lc = __uc(__loc);
20204 const _CharT* __lit = __lc->_M_atoms_in;
20205 char_type __c = char_type();
20208 bool __testeof = __beg == __end;
20214 const bool __plus = __c == __lit[__num_base::_S_iplus];
20215 if ((__plus || __c == __lit[__num_base::_S_iminus])
20216 && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
20217 && !(__c == __lc->_M_decimal_point))
20219 __xtrc += __plus ?
'+' :
'-';
20220 if (++__beg != __end)
20228 bool __found_mantissa =
false;
20232 if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
20233 || __c == __lc->_M_decimal_point)
20235 else if (__c == __lit[__num_base::_S_izero])
20237 if (!__found_mantissa)
20240 __found_mantissa =
true;
20244 if (++__beg != __end)
20254 bool __found_dec =
false;
20255 bool __found_sci =
false;
20256 string __found_grouping;
20257 if (__lc->_M_use_grouping)
20258 __found_grouping.reserve(32);
20259 const char_type* __lit_zero = __lit + __num_base::_S_izero;
20261 if (!__lc->_M_allocated)
20265 const int __digit = _M_find(__lit_zero, 10, __c);
20268 __xtrc +=
'0' + __digit;
20269 __found_mantissa =
true;
20271 else if (__c == __lc->_M_decimal_point
20272 && !__found_dec && !__found_sci)
20275 __found_dec =
true;
20277 else if ((__c == __lit[__num_base::_S_ie]
20278 || __c == __lit[__num_base::_S_iE])
20279 && !__found_sci && __found_mantissa)
20283 __found_sci =
true;
20286 if (++__beg != __end)
20289 const bool __plus = __c == __lit[__num_base::_S_iplus];
20290 if (__plus || __c == __lit[__num_base::_S_iminus])
20291 __xtrc += __plus ?
'+' :
'-';
20304 if (++__beg != __end)
20314 if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
20316 if (!__found_dec && !__found_sci)
20322 __found_grouping +=
static_cast<char>(__sep_pos);
20336 else if (__c == __lc->_M_decimal_point)
20338 if (!__found_dec && !__found_sci)
20343 if (__found_grouping.size())
20344 __found_grouping += static_cast<char>(__sep_pos);
20346 __found_dec =
true;
20353 const char_type* __q =
20354 __traits_type::find(__lit_zero, 10, __c);
20357 __xtrc +=
'0' + (__q - __lit_zero);
20358 __found_mantissa =
true;
20361 else if ((__c == __lit[__num_base::_S_ie]
20362 || __c == __lit[__num_base::_S_iE])
20363 && !__found_sci && __found_mantissa)
20366 if (__found_grouping.size() && !__found_dec)
20367 __found_grouping += static_cast<char>(__sep_pos);
20369 __found_sci =
true;
20372 if (++__beg != __end)
20375 const bool __plus = __c == __lit[__num_base::_S_iplus];
20376 if ((__plus || __c == __lit[__num_base::_S_iminus])
20377 && !(__lc->_M_use_grouping
20378 && __c == __lc->_M_thousands_sep)
20379 && !(__c == __lc->_M_decimal_point))
20380 __xtrc += __plus ?
'+' :
'-';
20394 if (++__beg != __end)
20402 if (__found_grouping.size())
20405 if (!__found_dec && !__found_sci)
20406 __found_grouping +=
static_cast<char>(__sep_pos);
20408 if (!std::__verify_grouping(__lc->_M_grouping,
20409 __lc->_M_grouping_size,
20411 __err = ios_base::failbit;
20417 template<
typename _CharT,
typename _InIter>
20418 template<
typename _ValueT>
20420 num_get<_CharT, _InIter>::
20421 _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io,
20422 ios_base::iostate& __err, _ValueT& __v)
const
20424 typedef char_traits<_CharT> __traits_type;
20425 using __gnu_cxx::__add_unsigned;
20426 typedef typename __add_unsigned<_ValueT>::__type __unsigned_type;
20427 typedef __numpunct_cache<_CharT> __cache_type;
20428 __use_cache<__cache_type> __uc;
20429 const locale& __loc = __io._M_getloc();
20430 const __cache_type* __lc = __uc(__loc);
20431 const _CharT* __lit = __lc->_M_atoms_in;
20432 char_type __c = char_type();
20435 const ios_base::fmtflags __basefield = __io.flags()
20436 & ios_base::basefield;
20437 const bool __oct = __basefield == ios_base::oct;
20438 int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10);
20441 bool __testeof = __beg == __end;
20444 bool __negative =
false;
20448 __negative = __c == __lit[__num_base::_S_iminus];
20449 if ((__negative || __c == __lit[__num_base::_S_iplus])
20450 && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
20451 && !(__c == __lc->_M_decimal_point))
20453 if (++__beg != __end)
20462 bool __found_zero =
false;
20466 if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
20467 || __c == __lc->_M_decimal_point)
20469 else if (__c == __lit[__num_base::_S_izero]
20470 && (!__found_zero || __base == 10))
20472 __found_zero =
true;
20474 if (__basefield == 0)
20479 else if (__found_zero
20480 && (__c == __lit[__num_base::_S_ix]
20481 || __c == __lit[__num_base::_S_iX]))
20483 if (__basefield == 0)
20487 __found_zero =
false;
20496 if (++__beg != __end)
20508 const size_t __len = (__base == 16 ? __num_base::_S_iend
20509 - __num_base::_S_izero : __base);
20512 string __found_grouping;
20513 if (__lc->_M_use_grouping)
20514 __found_grouping.reserve(32);
20515 bool __testfail =
false;
20516 bool __testoverflow =
false;
20517 const __unsigned_type __max =
20518 (__negative && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
20519 ? -__gnu_cxx::__numeric_traits<_ValueT>::__min
20520 : __gnu_cxx::__numeric_traits<_ValueT>::__max;
20521 const __unsigned_type __smax = __max / __base;
20522 __unsigned_type __result = 0;
20524 const char_type* __lit_zero = __lit + __num_base::_S_izero;
20526 if (!__lc->_M_allocated)
20530 __digit = _M_find(__lit_zero, __len, __c);
20534 if (__result > __smax)
20535 __testoverflow =
true;
20538 __result *= __base;
20539 __testoverflow |= __result > __max - __digit;
20540 __result += __digit;
20544 if (++__beg != __end)
20554 if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
20560 __found_grouping +=
static_cast<char>(__sep_pos);
20569 else if (__c == __lc->_M_decimal_point)
20573 const char_type* __q =
20574 __traits_type::find(__lit_zero, __len, __c);
20578 __digit = __q - __lit_zero;
20581 if (__result > __smax)
20582 __testoverflow =
true;
20585 __result *= __base;
20586 __testoverflow |= __result > __max - __digit;
20587 __result += __digit;
20592 if (++__beg != __end)
20600 if (__found_grouping.size())
20603 __found_grouping +=
static_cast<char>(__sep_pos);
20605 if (!std::__verify_grouping(__lc->_M_grouping,
20606 __lc->_M_grouping_size,
20608 __err = ios_base::failbit;
20613 if ((!__sep_pos && !__found_zero && !__found_grouping.size())
20617 __err = ios_base::failbit;
20619 else if (__testoverflow)
20622 && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
20623 __v = __gnu_cxx::__numeric_traits<_ValueT>::__min;
20625 __v = __gnu_cxx::__numeric_traits<_ValueT>::__max;
20626 __err = ios_base::failbit;
20629 __v = __negative ? -__result : __result;
20632 __err |= ios_base::eofbit;
20638 template<
typename _CharT,
typename _InIter>
20640 num_get<_CharT, _InIter>::
20641 do_get(iter_type __beg, iter_type __end, ios_base& __io,
20642 ios_base::iostate& __err,
bool& __v)
const
20644 if (!(__io.flags() & ios_base::boolalpha))
20650 __beg = _M_extract_int(__beg, __end, __io, __err, __l);
20651 if (__l == 0 || __l == 1)
20658 __err = ios_base::failbit;
20659 if (__beg == __end)
20660 __err |= ios_base::eofbit;
20666 typedef __numpunct_cache<_CharT> __cache_type;
20667 __use_cache<__cache_type> __uc;
20668 const locale& __loc = __io._M_getloc();
20669 const __cache_type* __lc = __uc(__loc);
20671 bool __testf =
true;
20672 bool __testt =
true;
20673 bool __donef = __lc->_M_falsename_size == 0;
20674 bool __donet = __lc->_M_truename_size == 0;
20675 bool __testeof =
false;
20677 while (!__donef || !__donet)
20679 if (__beg == __end)
20685 const char_type __c = *__beg;
20688 __testf = __c == __lc->_M_falsename[__n];
20690 if (!__testf && __donet)
20694 __testt = __c == __lc->_M_truename[__n];
20696 if (!__testt && __donef)
20699 if (!__testt && !__testf)
20705 __donef = !__testf || __n >= __lc->_M_falsename_size;
20706 __donet = !__testt || __n >= __lc->_M_truename_size;
20708 if (__testf && __n == __lc->_M_falsename_size && __n)
20711 if (__testt && __n == __lc->_M_truename_size)
20712 __err = ios_base::failbit;
20714 __err = __testeof ? ios_base::eofbit : ios_base::goodbit;
20716 else if (__testt && __n == __lc->_M_truename_size && __n)
20719 __err = __testeof ? ios_base::eofbit : ios_base::goodbit;
20726 __err = ios_base::failbit;
20728 __err |= ios_base::eofbit;
20734 template<
typename _CharT,
typename _InIter>
20736 num_get<_CharT, _InIter>::
20737 do_get(iter_type __beg, iter_type __end, ios_base& __io,
20738 ios_base::iostate& __err,
float& __v)
const
20741 __xtrc.reserve(32);
20742 __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
20743 std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
20744 if (__beg == __end)
20745 __err |= ios_base::eofbit;
20749 template<
typename _CharT,
typename _InIter>
20751 num_get<_CharT, _InIter>::
20752 do_get(iter_type __beg, iter_type __end, ios_base& __io,
20753 ios_base::iostate& __err,
double& __v)
const
20756 __xtrc.reserve(32);
20757 __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
20758 std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
20759 if (__beg == __end)
20760 __err |= ios_base::eofbit;
20763 # 730 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 3
20764 template<
typename _CharT,
typename _InIter>
20766 num_get<_CharT, _InIter>::
20767 do_get(iter_type __beg, iter_type __end, ios_base& __io,
20768 ios_base::iostate& __err,
long double& __v)
const
20771 __xtrc.reserve(32);
20772 __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
20773 std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
20774 if (__beg == __end)
20775 __err |= ios_base::eofbit;
20779 template<
typename _CharT,
typename _InIter>
20781 num_get<_CharT, _InIter>::
20782 do_get(iter_type __beg, iter_type __end, ios_base& __io,
20783 ios_base::iostate& __err,
void*& __v)
const
20786 typedef ios_base::fmtflags fmtflags;
20787 const fmtflags __fmt = __io.flags();
20788 __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex);
20790 typedef __gnu_cxx::__conditional_type<(
sizeof(
void*)
20791 <=
sizeof(
unsigned long)),
20792 unsigned long,
unsigned long long>::__type _UIntPtrType;
20795 __beg = _M_extract_int(__beg, __end, __io, __err, __ul);
20800 __v =
reinterpret_cast<void*
>(__ul);
20806 template<
typename _CharT,
typename _OutIter>
20808 num_put<_CharT, _OutIter>::
20809 _M_pad(_CharT __fill, streamsize __w, ios_base& __io,
20810 _CharT* __new,
const _CharT* __cs,
int& __len)
const
20814 __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new,
20816 __len =
static_cast<int>(__w);
20821 template<
typename _CharT,
typename _ValueT>
20823 __int_to_char(_CharT* __bufend, _ValueT __v,
const _CharT* __lit,
20824 ios_base::fmtflags __flags,
bool __dec)
20826 _CharT* __buf = __bufend;
20827 if (__builtin_expect(__dec,
true))
20832 *--__buf = __lit[(__v % 10) + __num_base::_S_odigits];
20837 else if ((__flags & ios_base::basefield) == ios_base::oct)
20842 *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits];
20850 const bool __uppercase = __flags & ios_base::uppercase;
20851 const int __case_offset = __uppercase ? __num_base::_S_oudigits
20852 : __num_base::_S_odigits;
20855 *--__buf = __lit[(__v & 0xf) + __case_offset];
20860 return __bufend - __buf;
20865 template<
typename _CharT,
typename _OutIter>
20867 num_put<_CharT, _OutIter>::
20868 _M_group_int(
const char* __grouping,
size_t __grouping_size, _CharT __sep,
20869 ios_base&, _CharT* __new, _CharT* __cs,
int& __len)
const
20871 _CharT* __p = std::__add_grouping(__new, __sep, __grouping,
20872 __grouping_size, __cs, __cs + __len);
20873 __len = __p - __new;
20876 template<
typename _CharT,
typename _OutIter>
20877 template<
typename _ValueT>
20879 num_put<_CharT, _OutIter>::
20880 _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill,
20883 using __gnu_cxx::__add_unsigned;
20884 typedef typename __add_unsigned<_ValueT>::__type __unsigned_type;
20885 typedef __numpunct_cache<_CharT> __cache_type;
20886 __use_cache<__cache_type> __uc;
20887 const locale& __loc = __io._M_getloc();
20888 const __cache_type* __lc = __uc(__loc);
20889 const _CharT* __lit = __lc->_M_atoms_out;
20890 const ios_base::fmtflags __flags = __io.flags();
20893 const int __ilen = 5 *
sizeof(_ValueT);
20894 _CharT* __cs =
static_cast<_CharT*
>(__builtin_alloca(
sizeof(_CharT)
20899 const ios_base::fmtflags __basefield = __flags & ios_base::basefield;
20900 const bool __dec = (__basefield != ios_base::oct
20901 && __basefield != ios_base::hex);
20902 const __unsigned_type __u = ((__v > 0 || !__dec)
20903 ? __unsigned_type(__v)
20904 : -__unsigned_type(__v));
20905 int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec);
20906 __cs += __ilen - __len;
20909 if (__lc->_M_use_grouping)
20913 _CharT* __cs2 =
static_cast<_CharT*
>(__builtin_alloca(
sizeof(_CharT)
20916 _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size,
20917 __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len);
20922 if (__builtin_expect(__dec,
true))
20927 if (
bool(__flags & ios_base::showpos)
20928 && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
20929 *--__cs = __lit[__num_base::_S_oplus], ++__len;
20932 *--__cs = __lit[__num_base::_S_ominus], ++__len;
20934 else if (
bool(__flags & ios_base::showbase) && __v)
20936 if (__basefield == ios_base::oct)
20937 *--__cs = __lit[__num_base::_S_odigits], ++__len;
20941 const bool __uppercase = __flags & ios_base::uppercase;
20942 *--__cs = __lit[__num_base::_S_ox + __uppercase];
20944 *--__cs = __lit[__num_base::_S_odigits];
20950 const streamsize __w = __io.width();
20951 if (__w > static_cast<streamsize>(__len))
20953 _CharT* __cs3 =
static_cast<_CharT*
>(__builtin_alloca(
sizeof(_CharT)
20955 _M_pad(__fill, __w, __io, __cs3, __cs, __len);
20962 return std::__write(__s, __cs, __len);
20965 template<
typename _CharT,
typename _OutIter>
20967 num_put<_CharT, _OutIter>::
20968 _M_group_float(
const char* __grouping,
size_t __grouping_size,
20969 _CharT __sep,
const _CharT* __p, _CharT* __new,
20970 _CharT* __cs,
int& __len)
const
20975 const int __declen = __p ? __p - __cs : __len;
20976 _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping,
20978 __cs, __cs + __declen);
20981 int __newlen = __p2 - __new;
20984 char_traits<_CharT>::copy(__p2, __p, __len - __declen);
20985 __newlen += __len - __declen;
20989 # 966 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 3
20990 template<
typename _CharT,
typename _OutIter>
20991 template<
typename _ValueT>
20993 num_put<_CharT, _OutIter>::
20994 _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill,
char __mod,
20997 typedef __numpunct_cache<_CharT> __cache_type;
20998 __use_cache<__cache_type> __uc;
20999 const locale& __loc = __io._M_getloc();
21000 const __cache_type* __lc = __uc(__loc);
21003 const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision();
21005 const int __max_digits =
21006 __gnu_cxx::__numeric_traits<_ValueT>::__digits10;
21012 __num_base::_S_format_float(__io, __fbuf, __mod);
21017 int __cs_size = __max_digits * 3;
21018 char* __cs =
static_cast<char*
>(__builtin_alloca(__cs_size));
21019 __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size,
21020 __fbuf, __prec, __v);
21023 if (__len >= __cs_size)
21025 __cs_size = __len + 1;
21026 __cs =
static_cast<char*
>(__builtin_alloca(__cs_size));
21027 __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size,
21028 __fbuf, __prec, __v);
21030 # 1027 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 3
21031 const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
21033 _CharT* __ws =
static_cast<_CharT*
>(__builtin_alloca(
sizeof(_CharT)
21035 __ctype.widen(__cs, __cs + __len, __ws);
21039 const char* __p = char_traits<char>::find(__cs, __len,
'.');
21042 __wp = __ws + (__p - __cs);
21043 *__wp = __lc->_M_decimal_point;
21049 if (__lc->_M_use_grouping
21050 && (__wp || __len < 3 || (__cs[1] <=
'9' && __cs[2] <=
'9'
21051 && __cs[1] >=
'0' && __cs[2] >=
'0')))
21055 _CharT* __ws2 =
static_cast<_CharT*
>(__builtin_alloca(
sizeof(_CharT)
21058 streamsize __off = 0;
21059 if (__cs[0] ==
'-' || __cs[0] ==
'+')
21062 __ws2[0] = __ws[0];
21066 _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size,
21067 __lc->_M_thousands_sep, __wp, __ws2 + __off,
21068 __ws + __off, __len);
21075 const streamsize __w = __io.width();
21076 if (__w > static_cast<streamsize>(__len))
21078 _CharT* __ws3 =
static_cast<_CharT*
>(__builtin_alloca(
sizeof(_CharT)
21080 _M_pad(__fill, __w, __io, __ws3, __ws, __len);
21087 return std::__write(__s, __ws, __len);
21090 template<
typename _CharT,
typename _OutIter>
21092 num_put<_CharT, _OutIter>::
21093 do_put(iter_type __s, ios_base& __io, char_type __fill,
bool __v)
const
21095 const ios_base::fmtflags __flags = __io.flags();
21096 if ((__flags & ios_base::boolalpha) == 0)
21098 const long __l = __v;
21099 __s = _M_insert_int(__s, __io, __fill, __l);
21103 typedef __numpunct_cache<_CharT> __cache_type;
21104 __use_cache<__cache_type> __uc;
21105 const locale& __loc = __io._M_getloc();
21106 const __cache_type* __lc = __uc(__loc);
21108 const _CharT* __name = __v ? __lc->_M_truename
21109 : __lc->_M_falsename;
21110 int __len = __v ? __lc->_M_truename_size
21111 : __lc->_M_falsename_size;
21113 const streamsize __w = __io.width();
21114 if (__w > static_cast<streamsize>(__len))
21116 const streamsize __plen = __w - __len;
21118 =
static_cast<_CharT*
>(__builtin_alloca(
sizeof(_CharT)
21121 char_traits<_CharT>::assign(__ps, __plen, __fill);
21124 if ((__flags & ios_base::adjustfield) == ios_base::left)
21126 __s = std::__write(__s, __name, __len);
21127 __s = std::__write(__s, __ps, __plen);
21131 __s = std::__write(__s, __ps, __plen);
21132 __s = std::__write(__s, __name, __len);
21137 __s = std::__write(__s, __name, __len);
21142 template<
typename _CharT,
typename _OutIter>
21144 num_put<_CharT, _OutIter>::
21145 do_put(iter_type __s, ios_base& __io, char_type __fill,
double __v)
const
21146 {
return _M_insert_float(__s, __io, __fill,
char(), __v); }
21147 # 1152 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 3
21148 template<
typename _CharT,
typename _OutIter>
21150 num_put<_CharT, _OutIter>::
21151 do_put(iter_type __s, ios_base& __io, char_type __fill,
21152 long double __v)
const
21153 {
return _M_insert_float(__s, __io, __fill,
'L', __v); }
21155 template<
typename _CharT,
typename _OutIter>
21157 num_put<_CharT, _OutIter>::
21158 do_put(iter_type __s, ios_base& __io, char_type __fill,
21159 const void* __v)
const
21161 const ios_base::fmtflags __flags = __io.flags();
21162 const ios_base::fmtflags __fmt = ~(ios_base::basefield
21163 | ios_base::uppercase);
21164 __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase));
21166 typedef __gnu_cxx::__conditional_type<(
sizeof(
const void*)
21167 <=
sizeof(
unsigned long)),
21168 unsigned long,
unsigned long long>::__type _UIntPtrType;
21170 __s = _M_insert_int(__s, __io, __fill,
21171 reinterpret_cast<_UIntPtrType>(__v));
21172 __io.flags(__flags);
21175 # 1189 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 3
21176 template<
typename _CharT,
typename _Traits>
21178 __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill,
21179 _CharT* __news,
const _CharT* __olds,
21180 streamsize __newlen, streamsize __oldlen)
21182 const size_t __plen =
static_cast<size_t>(__newlen - __oldlen);
21183 const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield;
21186 if (__adjust == ios_base::left)
21188 _Traits::copy(__news, __olds, __oldlen);
21189 _Traits::assign(__news + __oldlen, __plen, __fill);
21194 if (__adjust == ios_base::internal)
21199 const locale& __loc = __io._M_getloc();
21200 const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
21202 if (__ctype.widen(
'-') == __olds[0]
21203 || __ctype.widen(
'+') == __olds[0])
21205 __news[0] = __olds[0];
21209 else if (__ctype.widen(
'0') == __olds[0]
21211 && (__ctype.widen(
'x') == __olds[1]
21212 || __ctype.widen(
'X') == __olds[1]))
21214 __news[0] = __olds[0];
21215 __news[1] = __olds[1];
21221 _Traits::assign(__news, __plen, __fill);
21222 _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod);
21225 template<
typename _CharT>
21227 __add_grouping(_CharT* __s, _CharT __sep,
21228 const char* __gbeg,
size_t __gsize,
21229 const _CharT* __first,
const _CharT* __last)
21234 while (__last - __first > __gbeg[__idx]
21235 && static_cast<signed char>(__gbeg[__idx]) > 0
21236 && __gbeg[__idx] != __gnu_cxx::__numeric_traits<char>::__max)
21238 __last -= __gbeg[__idx];
21239 __idx < __gsize - 1 ? ++__idx : ++__ctr;
21242 while (__first != __last)
21243 *__s++ = *__first++;
21248 for (
char __i = __gbeg[__idx]; __i > 0; --__i)
21249 *__s++ = *__first++;
21255 for (
char __i = __gbeg[__idx]; __i > 0; --__i)
21256 *__s++ = *__first++;
21265 extern template class numpunct<char>;
21266 extern template class numpunct_byname<char>;
21267 extern template class num_get<char>;
21268 extern template class num_put<char>;
21269 extern template class ctype_byname<char>;
21273 use_facet<ctype<char> >(
const locale&);
21276 const numpunct<char>&
21277 use_facet<numpunct<char> >(
const locale&);
21280 const num_put<char>&
21281 use_facet<num_put<char> >(
const locale&);
21284 const num_get<char>&
21285 use_facet<num_get<char> >(
const locale&);
21289 has_facet<ctype<char> >(
const locale&);
21293 has_facet<numpunct<char> >(
const locale&);
21297 has_facet<num_put<char> >(
const locale&);
21301 has_facet<num_get<char> >(
const locale&);
21304 extern template class numpunct<wchar_t>;
21305 extern template class numpunct_byname<wchar_t>;
21306 extern template class num_get<wchar_t>;
21307 extern template class num_put<wchar_t>;
21308 extern template class ctype_byname<wchar_t>;
21311 const ctype<wchar_t>&
21312 use_facet<ctype<wchar_t> >(
const locale&);
21315 const numpunct<wchar_t>&
21316 use_facet<numpunct<wchar_t> >(
const locale&);
21319 const num_put<wchar_t>&
21320 use_facet<num_put<wchar_t> >(
const locale&);
21323 const num_get<wchar_t>&
21324 use_facet<num_get<wchar_t> >(
const locale&);
21328 has_facet<ctype<wchar_t> >(
const locale&);
21332 has_facet<numpunct<wchar_t> >(
const locale&);
21336 has_facet<num_put<wchar_t> >(
const locale&);
21340 has_facet<num_get<wchar_t> >(
const locale&);
21346 # 2609 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 2 3
21347 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 2 3
21350 namespace std __attribute__ ((__visibility__ ("default")))
21354 template<
typename _Facet>
21355 inline const _Facet&
21356 __check_facet(
const _Facet* __f)
21359 __throw_bad_cast();
21362 # 65 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21363 template<
typename _CharT,
typename _Traits>
21364 class basic_ios :
public ios_base
21373 typedef _CharT char_type;
21374 typedef typename _Traits::int_type int_type;
21375 typedef typename _Traits::pos_type pos_type;
21376 typedef typename _Traits::off_type off_type;
21377 typedef _Traits traits_type;
21384 typedef ctype<_CharT> __ctype_type;
21385 typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> >
21387 typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> >
21393 basic_ostream<_CharT, _Traits>* _M_tie;
21394 mutable char_type _M_fill;
21395 mutable bool _M_fill_init;
21396 basic_streambuf<_CharT, _Traits>* _M_streambuf;
21399 const __ctype_type* _M_ctype;
21401 const __num_put_type* _M_num_put;
21403 const __num_get_type* _M_num_get;
21413 operator void*()
const
21414 {
return this->fail() ? 0 :
const_cast<basic_ios*
>(
this); }
21418 {
return this->fail(); }
21419 # 130 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21422 {
return _M_streambuf_state; }
21423 # 141 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21425 clear(iostate __state = goodbit);
21434 setstate(iostate __state)
21435 { this->clear(this->rdstate() | __state); }
21441 _M_setstate(iostate __state)
21445 _M_streambuf_state |= __state;
21446 if (this->exceptions() & __state)
21458 {
return this->rdstate() == 0; }
21468 {
return (this->rdstate() & eofbit) != 0; }
21469 # 194 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21472 {
return (this->rdstate() & (badbit | failbit)) != 0; }
21482 {
return (this->rdstate() & badbit) != 0; }
21483 # 215 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21486 {
return _M_exception; }
21487 # 250 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21489 exceptions(iostate __except)
21491 _M_exception = __except;
21492 this->clear(_M_streambuf_state);
21502 basic_ios(basic_streambuf<_CharT, _Traits>* __sb)
21503 : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0),
21504 _M_ctype(0), _M_num_put(0), _M_num_get(0)
21505 { this->init(__sb); }
21515 # 288 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21516 basic_ostream<_CharT, _Traits>*
21519 # 300 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21520 basic_ostream<_CharT, _Traits>*
21521 tie(basic_ostream<_CharT, _Traits>* __tiestr)
21523 basic_ostream<_CharT, _Traits>* __old = _M_tie;
21534 basic_streambuf<_CharT, _Traits>*
21536 {
return _M_streambuf; }
21537 # 340 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21538 basic_streambuf<_CharT, _Traits>*
21539 rdbuf(basic_streambuf<_CharT, _Traits>* __sb);
21540 # 354 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21542 copyfmt(
const basic_ios& __rhs);
21555 _M_fill = this->widen(
' ');
21556 _M_fill_init =
true;
21560 # 383 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21562 fill(char_type __ch)
21564 char_type __old = this->fill();
21568 # 403 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21570 imbue(
const locale& __loc);
21571 # 423 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21573 narrow(char_type __c,
char __dfault)
const
21574 {
return __check_facet(_M_ctype).narrow(__c, __dfault); }
21575 # 442 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21577 widen(
char __c)
const
21578 {
return __check_facet(_M_ctype).widen(__c); }
21589 : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false),
21590 _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0)
21600 init(basic_streambuf<_CharT, _Traits>* __sb);
21603 _M_cache_locale(
const locale& __loc);
21610 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.tcc" 1 3
21611 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.tcc" 3
21613 namespace std __attribute__ ((__visibility__ ("default")))
21617 template<
typename _CharT,
typename _Traits>
21619 basic_ios<_CharT, _Traits>::clear(iostate __state)
21622 _M_streambuf_state = __state;
21624 _M_streambuf_state = __state | badbit;
21625 if (this->exceptions() & this->rdstate())
21626 __throw_ios_failure((
"basic_ios::clear"));
21629 template<
typename _CharT,
typename _Traits>
21630 basic_streambuf<_CharT, _Traits>*
21631 basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb)
21633 basic_streambuf<_CharT, _Traits>* __old = _M_streambuf;
21634 _M_streambuf = __sb;
21639 template<
typename _CharT,
typename _Traits>
21640 basic_ios<_CharT, _Traits>&
21641 basic_ios<_CharT, _Traits>::copyfmt(
const basic_ios& __rhs)
21645 if (
this != &__rhs)
21651 _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ?
21652 _M_local_word :
new _Words[__rhs._M_word_size];
21655 _Callback_list* __cb = __rhs._M_callbacks;
21657 __cb->_M_add_reference();
21658 _M_call_callbacks(erase_event);
21659 if (_M_word != _M_local_word)
21664 _M_dispose_callbacks();
21667 _M_callbacks = __cb;
21668 for (
int __i = 0; __i < __rhs._M_word_size; ++__i)
21669 __words[__i] = __rhs._M_word[__i];
21671 _M_word_size = __rhs._M_word_size;
21673 this->flags(__rhs.flags());
21674 this->width(__rhs.width());
21675 this->precision(__rhs.precision());
21676 this->tie(__rhs.tie());
21677 this->fill(__rhs.fill());
21678 _M_ios_locale = __rhs.getloc();
21679 _M_cache_locale(_M_ios_locale);
21681 _M_call_callbacks(copyfmt_event);
21684 this->exceptions(__rhs.exceptions());
21690 template<
typename _CharT,
typename _Traits>
21692 basic_ios<_CharT, _Traits>::imbue(
const locale& __loc)
21694 locale __old(this->getloc());
21695 ios_base::imbue(__loc);
21696 _M_cache_locale(__loc);
21697 if (this->rdbuf() != 0)
21698 this->rdbuf()->pubimbue(__loc);
21702 template<
typename _CharT,
typename _Traits>
21704 basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb)
21707 ios_base::_M_init();
21710 _M_cache_locale(_M_ios_locale);
21711 # 146 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.tcc" 3
21712 _M_fill = _CharT();
21713 _M_fill_init =
false;
21716 _M_exception = goodbit;
21717 _M_streambuf = __sb;
21718 _M_streambuf_state = __sb ? goodbit : badbit;
21721 template<
typename _CharT,
typename _Traits>
21723 basic_ios<_CharT, _Traits>::_M_cache_locale(
const locale& __loc)
21725 if (__builtin_expect(has_facet<__ctype_type>(__loc),
true))
21726 _M_ctype = &use_facet<__ctype_type>(__loc);
21730 if (__builtin_expect(has_facet<__num_put_type>(__loc),
true))
21731 _M_num_put = &use_facet<__num_put_type>(__loc);
21735 if (__builtin_expect(has_facet<__num_get_type>(__loc),
true))
21736 _M_num_get = &use_facet<__num_get_type>(__loc);
21744 extern template class basic_ios<char>;
21747 extern template class basic_ios<wchar_t>;
21753 # 476 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 2 3
21754 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ios" 2 3
21755 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 2 3
21756 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 1 3
21757 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21762 namespace std __attribute__ ((__visibility__ (
"default")))
21764 # 57 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21765 template<
typename _CharT,
typename _Traits>
21766 class basic_ostream :
virtual public basic_ios<_CharT, _Traits>
21770 typedef _CharT char_type;
21771 typedef typename _Traits::int_type int_type;
21772 typedef typename _Traits::pos_type pos_type;
21773 typedef typename _Traits::off_type off_type;
21774 typedef _Traits traits_type;
21777 typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
21778 typedef basic_ios<_CharT, _Traits> __ios_type;
21779 typedef basic_ostream<_CharT, _Traits> __ostream_type;
21780 typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> >
21782 typedef ctype<_CharT> __ctype_type;
21783 # 83 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21785 basic_ostream(__streambuf_type* __sb)
21786 { this->init(__sb); }
21794 ~basic_ostream() { }
21798 friend class sentry;
21799 # 107 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21801 operator<<(__ostream_type& (*__pf)(__ostream_type&))
21806 return __pf(*
this);
21810 operator<<(__ios_type& (*__pf)(__ios_type&))
21820 operator<<(ios_base& (*__pf) (ios_base&))
21828 # 165 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21830 operator<<(
long __n)
21831 {
return _M_insert(__n); }
21834 operator<<(
unsigned long __n)
21835 {
return _M_insert(__n); }
21838 operator<<(
bool __n)
21839 {
return _M_insert(__n); }
21842 operator<<(
short __n);
21845 operator<<(
unsigned short __n)
21849 return _M_insert(static_cast<unsigned long>(__n));
21853 operator<<(
int __n);
21856 operator<<(
unsigned int __n)
21860 return _M_insert(static_cast<unsigned long>(__n));
21865 operator<<(
long long __n)
21866 {
return _M_insert(__n); }
21869 operator<<(
unsigned long long __n)
21870 {
return _M_insert(__n); }
21871 # 219 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21873 operator<<(
double __f)
21874 {
return _M_insert(__f); }
21877 operator<<(
float __f)
21881 return _M_insert(static_cast<double>(__f));
21885 operator<<(
long double __f)
21886 {
return _M_insert(__f); }
21887 # 244 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21889 operator<<(
const void* __p)
21890 {
return _M_insert(__p); }
21891 # 269 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21893 operator<<(__streambuf_type* __sb);
21894 # 302 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21896 put(char_type __c);
21904 _M_write(
const char_type* __s, streamsize __n)
21906 const streamsize __put = this->rdbuf()->sputn(__s, __n);
21908 this->setstate(ios_base::badbit);
21910 # 334 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21912 write(
const char_type* __s, streamsize __n);
21913 # 347 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21916 # 357 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21919 # 368 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21922 # 380 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21924 seekp(off_type, ios_base::seekdir);
21930 template<
typename _ValueT>
21932 _M_insert(_ValueT __v);
21934 # 399 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21935 template <
typename _CharT,
typename _Traits>
21936 class basic_ostream<_CharT, _Traits>::sentry
21940 basic_ostream<_CharT, _Traits>& _M_os;
21943 # 418 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21945 sentry(basic_ostream<_CharT, _Traits>& __os);
21946 # 428 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21950 if (
bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception())
21953 if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1)
21954 _M_os.setstate(ios_base::badbit);
21957 # 447 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21960 operator bool()
const
21963 # 469 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21964 template<
typename _CharT,
typename _Traits>
21965 inline basic_ostream<_CharT, _Traits>&
21966 operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
21967 {
return __ostream_insert(__out, &__c, 1); }
21969 template<
typename _CharT,
typename _Traits>
21970 inline basic_ostream<_CharT, _Traits>&
21971 operator<<(basic_ostream<_CharT, _Traits>& __out,
char __c)
21972 {
return (__out << __out.widen(__c)); }
21975 template <
class _Traits>
21976 inline basic_ostream<char, _Traits>&
21977 operator<<(basic_ostream<char, _Traits>& __out,
char __c)
21978 {
return __ostream_insert(__out, &__c, 1); }
21981 template<
class _Traits>
21982 inline basic_ostream<char, _Traits>&
21983 operator<<(basic_ostream<char, _Traits>& __out,
signed char __c)
21984 {
return (__out << static_cast<char>(__c)); }
21986 template<
class _Traits>
21987 inline basic_ostream<char, _Traits>&
21988 operator<<(basic_ostream<char, _Traits>& __out,
unsigned char __c)
21989 {
return (__out << static_cast<char>(__c)); }
21990 # 511 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21991 template<
typename _CharT,
typename _Traits>
21992 inline basic_ostream<_CharT, _Traits>&
21993 operator<<(basic_ostream<_CharT, _Traits>& __out,
const _CharT* __s)
21996 __out.setstate(ios_base::badbit);
21998 __ostream_insert(__out, __s,
21999 static_cast<streamsize>(_Traits::length(__s)));
22003 template<
typename _CharT,
typename _Traits>
22004 basic_ostream<_CharT, _Traits> &
22005 operator<<(basic_ostream<_CharT, _Traits>& __out,
const char* __s);
22008 template<
class _Traits>
22009 inline basic_ostream<char, _Traits>&
22010 operator<<(basic_ostream<char, _Traits>& __out,
const char* __s)
22013 __out.setstate(ios_base::badbit);
22015 __ostream_insert(__out, __s,
22016 static_cast<streamsize>(_Traits::length(__s)));
22021 template<
class _Traits>
22022 inline basic_ostream<char, _Traits>&
22023 operator<<(basic_ostream<char, _Traits>& __out,
const signed char* __s)
22024 {
return (__out << reinterpret_cast<const char*>(__s)); }
22026 template<
class _Traits>
22027 inline basic_ostream<char, _Traits> &
22028 operator<<(basic_ostream<char, _Traits>& __out,
const unsigned char* __s)
22029 {
return (__out << reinterpret_cast<const char*>(__s)); }
22030 # 562 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
22031 template<
typename _CharT,
typename _Traits>
22032 inline basic_ostream<_CharT, _Traits>&
22033 endl(basic_ostream<_CharT, _Traits>& __os)
22034 {
return flush(__os.put(__os.widen(
'\n'))); }
22035 # 574 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
22036 template<
typename _CharT,
typename _Traits>
22037 inline basic_ostream<_CharT, _Traits>&
22038 ends(basic_ostream<_CharT, _Traits>& __os)
22039 {
return __os.put(_CharT()); }
22046 template<
typename _CharT,
typename _Traits>
22047 inline basic_ostream<_CharT, _Traits>&
22048 flush(basic_ostream<_CharT, _Traits>& __os)
22049 {
return __os.flush(); }
22050 # 600 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
22051 template<
typename _CharT,
typename _Traits,
typename _Tp>
22052 inline basic_ostream<_CharT, _Traits>&
22053 operator<<(basic_ostream<_CharT, _Traits>&& __os,
const _Tp& __x)
22054 {
return (__os << __x); }
22061 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ostream.tcc" 1 3
22062 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ostream.tcc" 3
22066 namespace std __attribute__ ((__visibility__ ("default")))
22070 template<
typename _CharT,
typename _Traits>
22071 basic_ostream<_CharT, _Traits>::sentry::
22072 sentry(basic_ostream<_CharT, _Traits>& __os)
22073 : _M_ok(false), _M_os(__os)
22076 if (__os.tie() && __os.good())
22077 __os.tie()->flush();
22082 __os.setstate(ios_base::failbit);
22085 template<
typename _CharT,
typename _Traits>
22086 template<
typename _ValueT>
22087 basic_ostream<_CharT, _Traits>&
22088 basic_ostream<_CharT, _Traits>::
22089 _M_insert(_ValueT __v)
22091 sentry __cerb(*
this);
22094 ios_base::iostate __err = ios_base::goodbit;
22097 const __num_put_type& __np = __check_facet(this->_M_num_put);
22098 if (__np.put(*
this, *
this, this->fill(), __v).failed())
22099 __err |= ios_base::badbit;
22103 this->_M_setstate(ios_base::badbit);
22107 { this->_M_setstate(ios_base::badbit); }
22109 this->setstate(__err);
22114 template<
typename _CharT,
typename _Traits>
22115 basic_ostream<_CharT, _Traits>&
22116 basic_ostream<_CharT, _Traits>::
22117 operator<<(
short __n)
22121 const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield;
22122 if (__fmt == ios_base::oct || __fmt == ios_base::hex)
22123 return _M_insert(static_cast<long>(static_cast<unsigned short>(__n)));
22125 return _M_insert(static_cast<long>(__n));
22128 template<
typename _CharT,
typename _Traits>
22129 basic_ostream<_CharT, _Traits>&
22130 basic_ostream<_CharT, _Traits>::
22131 operator<<(
int __n)
22135 const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield;
22136 if (__fmt == ios_base::oct || __fmt == ios_base::hex)
22137 return _M_insert(static_cast<long>(static_cast<unsigned int>(__n)));
22139 return _M_insert(static_cast<long>(__n));
22142 template<
typename _CharT,
typename _Traits>
22143 basic_ostream<_CharT, _Traits>&
22144 basic_ostream<_CharT, _Traits>::
22145 operator<<(__streambuf_type* __sbin)
22147 ios_base::iostate __err = ios_base::goodbit;
22148 sentry __cerb(*
this);
22149 if (__cerb && __sbin)
22153 if (!__copy_streambufs(__sbin, this->rdbuf()))
22154 __err |= ios_base::failbit;
22158 this->_M_setstate(ios_base::badbit);
22162 { this->_M_setstate(ios_base::failbit); }
22165 __err |= ios_base::badbit;
22167 this->setstate(__err);
22171 template<
typename _CharT,
typename _Traits>
22172 basic_ostream<_CharT, _Traits>&
22173 basic_ostream<_CharT, _Traits>::
22182 sentry __cerb(*
this);
22185 ios_base::iostate __err = ios_base::goodbit;
22188 const int_type __put = this->rdbuf()->sputc(__c);
22189 if (traits_type::eq_int_type(__put, traits_type::eof()))
22190 __err |= ios_base::badbit;
22194 this->_M_setstate(ios_base::badbit);
22198 { this->_M_setstate(ios_base::badbit); }
22200 this->setstate(__err);
22205 template<
typename _CharT,
typename _Traits>
22206 basic_ostream<_CharT, _Traits>&
22207 basic_ostream<_CharT, _Traits>::
22208 write(
const _CharT* __s, streamsize __n)
22217 sentry __cerb(*
this);
22221 { _M_write(__s, __n); }
22224 this->_M_setstate(ios_base::badbit);
22228 { this->_M_setstate(ios_base::badbit); }
22233 template<
typename _CharT,
typename _Traits>
22234 basic_ostream<_CharT, _Traits>&
22235 basic_ostream<_CharT, _Traits>::
22241 ios_base::iostate __err = ios_base::goodbit;
22244 if (this->rdbuf() && this->rdbuf()->pubsync() == -1)
22245 __err |= ios_base::badbit;
22249 this->_M_setstate(ios_base::badbit);
22253 { this->_M_setstate(ios_base::badbit); }
22255 this->setstate(__err);
22259 template<
typename _CharT,
typename _Traits>
22260 typename basic_ostream<_CharT, _Traits>::pos_type
22261 basic_ostream<_CharT, _Traits>::
22264 pos_type __ret = pos_type(-1);
22268 __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out);
22272 this->_M_setstate(ios_base::badbit);
22276 { this->_M_setstate(ios_base::badbit); }
22280 template<
typename _CharT,
typename _Traits>
22281 basic_ostream<_CharT, _Traits>&
22282 basic_ostream<_CharT, _Traits>::
22283 seekp(pos_type __pos)
22285 ios_base::iostate __err = ios_base::goodbit;
22292 const pos_type __p = this->rdbuf()->pubseekpos(__pos,
22296 if (__p == pos_type(off_type(-1)))
22297 __err |= ios_base::failbit;
22302 this->_M_setstate(ios_base::badbit);
22306 { this->_M_setstate(ios_base::badbit); }
22308 this->setstate(__err);
22312 template<
typename _CharT,
typename _Traits>
22313 basic_ostream<_CharT, _Traits>&
22314 basic_ostream<_CharT, _Traits>::
22315 seekp(off_type __off, ios_base::seekdir __dir)
22317 ios_base::iostate __err = ios_base::goodbit;
22324 const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir,
22328 if (__p == pos_type(off_type(-1)))
22329 __err |= ios_base::failbit;
22334 this->_M_setstate(ios_base::badbit);
22338 { this->_M_setstate(ios_base::badbit); }
22340 this->setstate(__err);
22344 template<
typename _CharT,
typename _Traits>
22345 basic_ostream<_CharT, _Traits>&
22346 operator<<(basic_ostream<_CharT, _Traits>& __out,
const char* __s)
22349 __out.setstate(ios_base::badbit);
22354 const size_t __clen = char_traits<char>::length(__s);
22360 __ptr_guard (_CharT *__ip): __p(__ip) { }
22361 ~__ptr_guard() {
delete[] __p; }
22362 _CharT* __get() {
return __p; }
22363 } __pg (
new _CharT[__clen]);
22365 _CharT *__ws = __pg.__get();
22366 for (
size_t __i = 0; __i < __clen; ++__i)
22367 __ws[__i] = __out.widen(__s[__i]);
22368 __ostream_insert(__out, __ws, __clen);
22372 __out._M_setstate(ios_base::badbit);
22376 { __out._M_setstate(ios_base::badbit); }
22384 extern template class basic_ostream<char>;
22385 extern template ostream& endl(ostream&);
22386 extern template ostream& ends(ostream&);
22387 extern template ostream& flush(ostream&);
22388 extern template ostream& operator<<(ostream&,
char);
22389 extern template ostream& operator<<(ostream&,
unsigned char);
22390 extern template ostream& operator<<(ostream&,
signed char);
22391 extern template ostream& operator<<(ostream&,
const char*);
22392 extern template ostream& operator<<(ostream&,
const unsigned char*);
22393 extern template ostream& operator<<(ostream&,
const signed char*);
22395 extern template ostream& ostream::_M_insert(
long);
22396 extern template ostream& ostream::_M_insert(
unsigned long);
22397 extern template ostream& ostream::_M_insert(
bool);
22399 extern template ostream& ostream::_M_insert(
long long);
22400 extern template ostream& ostream::_M_insert(
unsigned long long);
22402 extern template ostream& ostream::_M_insert(
double);
22403 extern template ostream& ostream::_M_insert(
long double);
22404 extern template ostream& ostream::_M_insert(
const void*);
22407 extern template class basic_ostream<wchar_t>;
22408 extern template wostream& endl(wostream&);
22409 extern template wostream& ends(wostream&);
22410 extern template wostream& flush(wostream&);
22411 extern template wostream& operator<<(wostream&,
wchar_t);
22412 extern template wostream& operator<<(wostream&,
char);
22413 extern template wostream& operator<<(wostream&,
const wchar_t*);
22414 extern template wostream& operator<<(wostream&,
const char*);
22416 extern template wostream& wostream::_M_insert(
long);
22417 extern template wostream& wostream::_M_insert(
unsigned long);
22418 extern template wostream& wostream::_M_insert(
bool);
22420 extern template wostream& wostream::_M_insert(
long long);
22421 extern template wostream& wostream::_M_insert(
unsigned long long);
22423 extern template wostream& wostream::_M_insert(
double);
22424 extern template wostream& wostream::_M_insert(
long double);
22425 extern template wostream& wostream::_M_insert(
const void*);
22431 # 610 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 2 3
22432 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 2 3
22434 namespace std __attribute__ ((__visibility__ (
"default")))
22436 # 57 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22437 template<
typename _CharT,
typename _Traits>
22438 class basic_istream :
virtual public basic_ios<_CharT, _Traits>
22442 typedef _CharT char_type;
22443 typedef typename _Traits::int_type int_type;
22444 typedef typename _Traits::pos_type pos_type;
22445 typedef typename _Traits::off_type off_type;
22446 typedef _Traits traits_type;
22449 typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
22450 typedef basic_ios<_CharT, _Traits> __ios_type;
22451 typedef basic_istream<_CharT, _Traits> __istream_type;
22452 typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> >
22454 typedef ctype<_CharT> __ctype_type;
22462 streamsize _M_gcount;
22473 basic_istream(__streambuf_type* __sb)
22474 : _M_gcount(streamsize(0))
22475 { this->init(__sb); }
22484 { _M_gcount = streamsize(0); }
22488 friend class sentry;
22489 # 119 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22491 operator>>(__istream_type& (*__pf)(__istream_type&))
22492 {
return __pf(*
this); }
22495 operator>>(__ios_type& (*__pf)(__ios_type&))
22502 operator>>(ios_base& (*__pf)(ios_base&))
22507 # 167 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22509 operator>>(
bool& __n)
22510 {
return _M_extract(__n); }
22513 operator>>(
short& __n);
22516 operator>>(
unsigned short& __n)
22517 {
return _M_extract(__n); }
22520 operator>>(
int& __n);
22523 operator>>(
unsigned int& __n)
22524 {
return _M_extract(__n); }
22527 operator>>(
long& __n)
22528 {
return _M_extract(__n); }
22531 operator>>(
unsigned long& __n)
22532 {
return _M_extract(__n); }
22536 operator>>(
long long& __n)
22537 {
return _M_extract(__n); }
22540 operator>>(
unsigned long long& __n)
22541 {
return _M_extract(__n); }
22542 # 213 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22544 operator>>(
float& __f)
22545 {
return _M_extract(__f); }
22548 operator>>(
double& __f)
22549 {
return _M_extract(__f); }
22552 operator>>(
long double& __f)
22553 {
return _M_extract(__f); }
22554 # 234 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22556 operator>>(
void*& __p)
22557 {
return _M_extract(__p); }
22558 # 258 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22560 operator>>(__streambuf_type* __sb);
22561 # 268 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22564 {
return _M_gcount; }
22565 # 301 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22568 # 315 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22570 get(char_type& __c);
22571 # 342 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22573 get(char_type* __s, streamsize __n, char_type __delim);
22574 # 353 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22576 get(char_type* __s, streamsize __n)
22577 {
return this->
get(__s, __n, this->widen(
'\n')); }
22578 # 376 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22580 get(__streambuf_type& __sb, char_type __delim);
22581 # 386 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22583 get(__streambuf_type& __sb)
22584 {
return this->
get(__sb, this->widen(
'\n')); }
22585 # 415 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22587 getline(char_type* __s, streamsize __n, char_type __delim);
22588 # 426 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22590 getline(char_type* __s, streamsize __n)
22591 {
return this->getline(__s, __n, this->widen(
'\n')); }
22592 # 450 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22594 ignore(streamsize __n, int_type __delim);
22597 ignore(streamsize __n);
22601 # 467 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22604 # 485 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22606 read(char_type* __s, streamsize __n);
22607 # 504 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22609 readsome(char_type* __s, streamsize __n);
22610 # 521 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22612 putback(char_type __c);
22613 # 537 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22616 # 555 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22619 # 570 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22622 # 585 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22625 # 601 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22627 seekg(off_type, ios_base::seekdir);
22632 : _M_gcount(streamsize(0))
22635 template<
typename _ValueT>
22637 _M_extract(_ValueT& __v);
22642 basic_istream<char>&
22643 basic_istream<char>::
22644 getline(char_type* __s, streamsize __n, char_type __delim);
22647 basic_istream<char>&
22648 basic_istream<char>::
22649 ignore(streamsize __n);
22652 basic_istream<char>&
22653 basic_istream<char>::
22654 ignore(streamsize __n, int_type __delim);
22658 basic_istream<wchar_t>&
22659 basic_istream<wchar_t>::
22660 getline(char_type* __s, streamsize __n, char_type __delim);
22663 basic_istream<wchar_t>&
22664 basic_istream<wchar_t>::
22665 ignore(streamsize __n);
22668 basic_istream<wchar_t>&
22669 basic_istream<wchar_t>::
22670 ignore(streamsize __n, int_type __delim);
22671 # 656 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22672 template<
typename _CharT,
typename _Traits>
22673 class basic_istream<_CharT, _Traits>::sentry
22680 typedef _Traits traits_type;
22681 typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
22682 typedef basic_istream<_CharT, _Traits> __istream_type;
22683 typedef typename __istream_type::__ctype_type __ctype_type;
22684 typedef typename _Traits::int_type __int_type;
22685 # 692 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22687 sentry(basic_istream<_CharT, _Traits>& __is,
bool __noskipws =
false);
22688 # 703 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22691 operator bool()
const
22694 # 721 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22695 template<
typename _CharT,
typename _Traits>
22696 basic_istream<_CharT, _Traits>&
22697 operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c);
22699 template<
class _Traits>
22700 inline basic_istream<char, _Traits>&
22701 operator>>(basic_istream<char, _Traits>& __in,
unsigned char& __c)
22702 {
return (__in >> reinterpret_cast<char&>(__c)); }
22704 template<
class _Traits>
22705 inline basic_istream<char, _Traits>&
22706 operator>>(basic_istream<char, _Traits>& __in,
signed char& __c)
22707 {
return (__in >> reinterpret_cast<char&>(__c)); }
22708 # 763 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22709 template<
typename _CharT,
typename _Traits>
22710 basic_istream<_CharT, _Traits>&
22711 operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s);
22715 basic_istream<char>&
22716 operator>>(basic_istream<char>& __in,
char* __s);
22718 template<
class _Traits>
22719 inline basic_istream<char, _Traits>&
22720 operator>>(basic_istream<char, _Traits>& __in,
unsigned char* __s)
22721 {
return (__in >> reinterpret_cast<char*>(__s)); }
22723 template<
class _Traits>
22724 inline basic_istream<char, _Traits>&
22725 operator>>(basic_istream<char, _Traits>& __in,
signed char* __s)
22726 {
return (__in >> reinterpret_cast<char*>(__s)); }
22727 # 794 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22728 template<
typename _CharT,
typename _Traits>
22729 class basic_iostream
22730 :
public basic_istream<_CharT, _Traits>,
22731 public basic_ostream<_CharT, _Traits>
22737 typedef _CharT char_type;
22738 typedef typename _Traits::int_type int_type;
22739 typedef typename _Traits::pos_type pos_type;
22740 typedef typename _Traits::off_type off_type;
22741 typedef _Traits traits_type;
22744 typedef basic_istream<_CharT, _Traits> __istream_type;
22745 typedef basic_ostream<_CharT, _Traits> __ostream_type;
22754 basic_iostream(basic_streambuf<_CharT, _Traits>* __sb)
22755 : __istream_type(__sb), __ostream_type(__sb) { }
22761 ~basic_iostream() { }
22765 : __istream_type(), __ostream_type() { }
22767 # 854 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22768 template<
typename _CharT,
typename _Traits>
22769 basic_istream<_CharT, _Traits>&
22770 ws(basic_istream<_CharT, _Traits>& __is);
22771 # 870 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22772 template<
typename _CharT,
typename _Traits,
typename _Tp>
22773 inline basic_istream<_CharT, _Traits>&
22774 operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x)
22775 {
return (__is >> __x); }
22782 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/istream.tcc" 1 3
22783 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/istream.tcc" 3
22787 namespace std __attribute__ ((__visibility__ ("default")))
22791 template<
typename _CharT,
typename _Traits>
22792 basic_istream<_CharT, _Traits>::sentry::
22793 sentry(basic_istream<_CharT, _Traits>& __in,
bool __noskip) : _M_ok(false)
22795 ios_base::iostate __err = ios_base::goodbit;
22799 __in.tie()->flush();
22800 if (!__noskip &&
bool(__in.flags() & ios_base::skipws))
22802 const __int_type __eof = traits_type::eof();
22803 __streambuf_type* __sb = __in.rdbuf();
22804 __int_type __c = __sb->sgetc();
22806 const __ctype_type& __ct = __check_facet(__in._M_ctype);
22807 while (!traits_type::eq_int_type(__c, __eof)
22808 && __ct.is(ctype_base::space,
22809 traits_type::to_char_type(__c)))
22810 __c = __sb->snextc();
22815 if (traits_type::eq_int_type(__c, __eof))
22816 __err |= ios_base::eofbit;
22820 if (__in.good() && __err == ios_base::goodbit)
22824 __err |= ios_base::failbit;
22825 __in.setstate(__err);
22829 template<
typename _CharT,
typename _Traits>
22830 template<
typename _ValueT>
22831 basic_istream<_CharT, _Traits>&
22832 basic_istream<_CharT, _Traits>::
22833 _M_extract(_ValueT& __v)
22835 sentry __cerb(*
this,
false);
22838 ios_base::iostate __err = ios_base::goodbit;
22841 const __num_get_type& __ng = __check_facet(this->_M_num_get);
22842 __ng.get(*
this, 0, *
this, __err, __v);
22846 this->_M_setstate(ios_base::badbit);
22850 { this->_M_setstate(ios_base::badbit); }
22852 this->setstate(__err);
22857 template<
typename _CharT,
typename _Traits>
22858 basic_istream<_CharT, _Traits>&
22859 basic_istream<_CharT, _Traits>::
22860 operator>>(
short& __n)
22864 sentry __cerb(*
this,
false);
22867 ios_base::iostate __err = ios_base::goodbit;
22871 const __num_get_type& __ng = __check_facet(this->_M_num_get);
22872 __ng.get(*
this, 0, *
this, __err, __l);
22876 if (__l < __gnu_cxx::__numeric_traits<short>::__min)
22878 __err |= ios_base::failbit;
22879 __n = __gnu_cxx::__numeric_traits<short>::__min;
22881 else if (__l > __gnu_cxx::__numeric_traits<short>::__max)
22883 __err |= ios_base::failbit;
22884 __n = __gnu_cxx::__numeric_traits<short>::__max;
22891 this->_M_setstate(ios_base::badbit);
22895 { this->_M_setstate(ios_base::badbit); }
22897 this->setstate(__err);
22902 template<
typename _CharT,
typename _Traits>
22903 basic_istream<_CharT, _Traits>&
22904 basic_istream<_CharT, _Traits>::
22905 operator>>(
int& __n)
22909 sentry __cerb(*
this,
false);
22912 ios_base::iostate __err = ios_base::goodbit;
22916 const __num_get_type& __ng = __check_facet(this->_M_num_get);
22917 __ng.get(*
this, 0, *
this, __err, __l);
22921 if (__l < __gnu_cxx::__numeric_traits<int>::__min)
22923 __err |= ios_base::failbit;
22924 __n = __gnu_cxx::__numeric_traits<int>::__min;
22926 else if (__l > __gnu_cxx::__numeric_traits<int>::__max)
22928 __err |= ios_base::failbit;
22929 __n = __gnu_cxx::__numeric_traits<int>::__max;
22936 this->_M_setstate(ios_base::badbit);
22940 { this->_M_setstate(ios_base::badbit); }
22942 this->setstate(__err);
22947 template<
typename _CharT,
typename _Traits>
22948 basic_istream<_CharT, _Traits>&
22949 basic_istream<_CharT, _Traits>::
22950 operator>>(__streambuf_type* __sbout)
22952 ios_base::iostate __err = ios_base::goodbit;
22953 sentry __cerb(*
this,
false);
22954 if (__cerb && __sbout)
22959 if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof))
22960 __err |= ios_base::failbit;
22962 __err |= ios_base::eofbit;
22966 this->_M_setstate(ios_base::failbit);
22970 { this->_M_setstate(ios_base::failbit); }
22973 __err |= ios_base::failbit;
22975 this->setstate(__err);
22979 template<
typename _CharT,
typename _Traits>
22980 typename basic_istream<_CharT, _Traits>::int_type
22981 basic_istream<_CharT, _Traits>::
22984 const int_type __eof = traits_type::eof();
22985 int_type __c = __eof;
22987 ios_base::iostate __err = ios_base::goodbit;
22988 sentry __cerb(*
this,
true);
22993 __c = this->rdbuf()->sbumpc();
22995 if (!traits_type::eq_int_type(__c, __eof))
22998 __err |= ios_base::eofbit;
23002 this->_M_setstate(ios_base::badbit);
23006 { this->_M_setstate(ios_base::badbit); }
23009 __err |= ios_base::failbit;
23011 this->setstate(__err);
23015 template<
typename _CharT,
typename _Traits>
23016 basic_istream<_CharT, _Traits>&
23017 basic_istream<_CharT, _Traits>::
23018 get(char_type& __c)
23021 ios_base::iostate __err = ios_base::goodbit;
23022 sentry __cerb(*
this,
true);
23027 const int_type __cb = this->rdbuf()->sbumpc();
23029 if (!traits_type::eq_int_type(__cb, traits_type::eof()))
23032 __c = traits_type::to_char_type(__cb);
23035 __err |= ios_base::eofbit;
23039 this->_M_setstate(ios_base::badbit);
23043 { this->_M_setstate(ios_base::badbit); }
23046 __err |= ios_base::failbit;
23048 this->setstate(__err);
23052 template<
typename _CharT,
typename _Traits>
23053 basic_istream<_CharT, _Traits>&
23054 basic_istream<_CharT, _Traits>::
23055 get(char_type* __s, streamsize __n, char_type __delim)
23058 ios_base::iostate __err = ios_base::goodbit;
23059 sentry __cerb(*
this,
true);
23064 const int_type __idelim = traits_type::to_int_type(__delim);
23065 const int_type __eof = traits_type::eof();
23066 __streambuf_type* __sb = this->rdbuf();
23067 int_type __c = __sb->sgetc();
23069 while (_M_gcount + 1 < __n
23070 && !traits_type::eq_int_type(__c, __eof)
23071 && !traits_type::eq_int_type(__c, __idelim))
23073 *__s++ = traits_type::to_char_type(__c);
23075 __c = __sb->snextc();
23077 if (traits_type::eq_int_type(__c, __eof))
23078 __err |= ios_base::eofbit;
23082 this->_M_setstate(ios_base::badbit);
23086 { this->_M_setstate(ios_base::badbit); }
23091 *__s = char_type();
23093 __err |= ios_base::failbit;
23095 this->setstate(__err);
23099 template<
typename _CharT,
typename _Traits>
23100 basic_istream<_CharT, _Traits>&
23101 basic_istream<_CharT, _Traits>::
23102 get(__streambuf_type& __sb, char_type __delim)
23105 ios_base::iostate __err = ios_base::goodbit;
23106 sentry __cerb(*
this,
true);
23111 const int_type __idelim = traits_type::to_int_type(__delim);
23112 const int_type __eof = traits_type::eof();
23113 __streambuf_type* __this_sb = this->rdbuf();
23114 int_type __c = __this_sb->sgetc();
23115 char_type __c2 = traits_type::to_char_type(__c);
23117 while (!traits_type::eq_int_type(__c, __eof)
23118 && !traits_type::eq_int_type(__c, __idelim)
23119 && !traits_type::eq_int_type(__sb.sputc(__c2), __eof))
23122 __c = __this_sb->snextc();
23123 __c2 = traits_type::to_char_type(__c);
23125 if (traits_type::eq_int_type(__c, __eof))
23126 __err |= ios_base::eofbit;
23130 this->_M_setstate(ios_base::badbit);
23134 { this->_M_setstate(ios_base::badbit); }
23137 __err |= ios_base::failbit;
23139 this->setstate(__err);
23143 template<
typename _CharT,
typename _Traits>
23144 basic_istream<_CharT, _Traits>&
23145 basic_istream<_CharT, _Traits>::
23146 getline(char_type* __s, streamsize __n, char_type __delim)
23149 ios_base::iostate __err = ios_base::goodbit;
23150 sentry __cerb(*
this,
true);
23155 const int_type __idelim = traits_type::to_int_type(__delim);
23156 const int_type __eof = traits_type::eof();
23157 __streambuf_type* __sb = this->rdbuf();
23158 int_type __c = __sb->sgetc();
23160 while (_M_gcount + 1 < __n
23161 && !traits_type::eq_int_type(__c, __eof)
23162 && !traits_type::eq_int_type(__c, __idelim))
23164 *__s++ = traits_type::to_char_type(__c);
23165 __c = __sb->snextc();
23168 if (traits_type::eq_int_type(__c, __eof))
23169 __err |= ios_base::eofbit;
23172 if (traits_type::eq_int_type(__c, __idelim))
23178 __err |= ios_base::failbit;
23183 this->_M_setstate(ios_base::badbit);
23187 { this->_M_setstate(ios_base::badbit); }
23192 *__s = char_type();
23194 __err |= ios_base::failbit;
23196 this->setstate(__err);
23203 template<
typename _CharT,
typename _Traits>
23204 basic_istream<_CharT, _Traits>&
23205 basic_istream<_CharT, _Traits>::
23209 sentry __cerb(*
this,
true);
23212 ios_base::iostate __err = ios_base::goodbit;
23215 const int_type __eof = traits_type::eof();
23216 __streambuf_type* __sb = this->rdbuf();
23218 if (traits_type::eq_int_type(__sb->sbumpc(), __eof))
23219 __err |= ios_base::eofbit;
23225 this->_M_setstate(ios_base::badbit);
23229 { this->_M_setstate(ios_base::badbit); }
23231 this->setstate(__err);
23236 template<
typename _CharT,
typename _Traits>
23237 basic_istream<_CharT, _Traits>&
23238 basic_istream<_CharT, _Traits>::
23239 ignore(streamsize __n)
23242 sentry __cerb(*
this,
true);
23243 if (__cerb && __n > 0)
23245 ios_base::iostate __err = ios_base::goodbit;
23248 const int_type __eof = traits_type::eof();
23249 __streambuf_type* __sb = this->rdbuf();
23250 int_type __c = __sb->sgetc();
23251 # 513 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/istream.tcc" 3
23252 bool __large_ignore =
false;
23255 while (_M_gcount < __n
23256 && !traits_type::eq_int_type(__c, __eof))
23259 __c = __sb->snextc();
23261 if (__n == __gnu_cxx::__numeric_traits<streamsize>::__max
23262 && !traits_type::eq_int_type(__c, __eof))
23265 __gnu_cxx::__numeric_traits<streamsize>::__min;
23266 __large_ignore =
true;
23272 if (__large_ignore)
23273 _M_gcount = __gnu_cxx::__numeric_traits<streamsize>::__max;
23275 if (traits_type::eq_int_type(__c, __eof))
23276 __err |= ios_base::eofbit;
23280 this->_M_setstate(ios_base::badbit);
23284 { this->_M_setstate(ios_base::badbit); }
23286 this->setstate(__err);
23291 template<
typename _CharT,
typename _Traits>
23292 basic_istream<_CharT, _Traits>&
23293 basic_istream<_CharT, _Traits>::
23294 ignore(streamsize __n, int_type __delim)
23297 sentry __cerb(*
this,
true);
23298 if (__cerb && __n > 0)
23300 ios_base::iostate __err = ios_base::goodbit;
23303 const int_type __eof = traits_type::eof();
23304 __streambuf_type* __sb = this->rdbuf();
23305 int_type __c = __sb->sgetc();
23308 bool __large_ignore =
false;
23311 while (_M_gcount < __n
23312 && !traits_type::eq_int_type(__c, __eof)
23313 && !traits_type::eq_int_type(__c, __delim))
23316 __c = __sb->snextc();
23318 if (__n == __gnu_cxx::__numeric_traits<streamsize>::__max
23319 && !traits_type::eq_int_type(__c, __eof)
23320 && !traits_type::eq_int_type(__c, __delim))
23323 __gnu_cxx::__numeric_traits<streamsize>::__min;
23324 __large_ignore =
true;
23330 if (__large_ignore)
23331 _M_gcount = __gnu_cxx::__numeric_traits<streamsize>::__max;
23333 if (traits_type::eq_int_type(__c, __eof))
23334 __err |= ios_base::eofbit;
23335 else if (traits_type::eq_int_type(__c, __delim))
23338 < __gnu_cxx::__numeric_traits<streamsize>::__max)
23345 this->_M_setstate(ios_base::badbit);
23349 { this->_M_setstate(ios_base::badbit); }
23351 this->setstate(__err);
23356 template<
typename _CharT,
typename _Traits>
23357 typename basic_istream<_CharT, _Traits>::int_type
23358 basic_istream<_CharT, _Traits>::
23361 int_type __c = traits_type::eof();
23363 sentry __cerb(*
this,
true);
23366 ios_base::iostate __err = ios_base::goodbit;
23369 __c = this->rdbuf()->sgetc();
23370 if (traits_type::eq_int_type(__c, traits_type::eof()))
23371 __err |= ios_base::eofbit;
23375 this->_M_setstate(ios_base::badbit);
23379 { this->_M_setstate(ios_base::badbit); }
23381 this->setstate(__err);
23386 template<
typename _CharT,
typename _Traits>
23387 basic_istream<_CharT, _Traits>&
23388 basic_istream<_CharT, _Traits>::
23389 read(char_type* __s, streamsize __n)
23392 sentry __cerb(*
this,
true);
23395 ios_base::iostate __err = ios_base::goodbit;
23398 _M_gcount = this->rdbuf()->sgetn(__s, __n);
23399 if (_M_gcount != __n)
23400 __err |= (ios_base::eofbit | ios_base::failbit);
23404 this->_M_setstate(ios_base::badbit);
23408 { this->_M_setstate(ios_base::badbit); }
23410 this->setstate(__err);
23415 template<
typename _CharT,
typename _Traits>
23417 basic_istream<_CharT, _Traits>::
23418 readsome(char_type* __s, streamsize __n)
23421 sentry __cerb(*
this,
true);
23424 ios_base::iostate __err = ios_base::goodbit;
23428 const streamsize __num = this->rdbuf()->in_avail();
23430 _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n));
23431 else if (__num == -1)
23432 __err |= ios_base::eofbit;
23436 this->_M_setstate(ios_base::badbit);
23440 { this->_M_setstate(ios_base::badbit); }
23442 this->setstate(__err);
23447 template<
typename _CharT,
typename _Traits>
23448 basic_istream<_CharT, _Traits>&
23449 basic_istream<_CharT, _Traits>::
23450 putback(char_type __c)
23456 this->clear(this->rdstate() & ~ios_base::eofbit);
23457 sentry __cerb(*
this,
true);
23460 ios_base::iostate __err = ios_base::goodbit;
23463 const int_type __eof = traits_type::eof();
23464 __streambuf_type* __sb = this->rdbuf();
23466 || traits_type::eq_int_type(__sb->sputbackc(__c), __eof))
23467 __err |= ios_base::badbit;
23471 this->_M_setstate(ios_base::badbit);
23475 { this->_M_setstate(ios_base::badbit); }
23477 this->setstate(__err);
23482 template<
typename _CharT,
typename _Traits>
23483 basic_istream<_CharT, _Traits>&
23484 basic_istream<_CharT, _Traits>::
23491 this->clear(this->rdstate() & ~ios_base::eofbit);
23492 sentry __cerb(*
this,
true);
23495 ios_base::iostate __err = ios_base::goodbit;
23498 const int_type __eof = traits_type::eof();
23499 __streambuf_type* __sb = this->rdbuf();
23501 || traits_type::eq_int_type(__sb->sungetc(), __eof))
23502 __err |= ios_base::badbit;
23506 this->_M_setstate(ios_base::badbit);
23510 { this->_M_setstate(ios_base::badbit); }
23512 this->setstate(__err);
23517 template<
typename _CharT,
typename _Traits>
23519 basic_istream<_CharT, _Traits>::
23525 sentry __cerb(*
this,
true);
23528 ios_base::iostate __err = ios_base::goodbit;
23531 __streambuf_type* __sb = this->rdbuf();
23534 if (__sb->pubsync() == -1)
23535 __err |= ios_base::badbit;
23542 this->_M_setstate(ios_base::badbit);
23546 { this->_M_setstate(ios_base::badbit); }
23548 this->setstate(__err);
23553 template<
typename _CharT,
typename _Traits>
23554 typename basic_istream<_CharT, _Traits>::pos_type
23555 basic_istream<_CharT, _Traits>::
23560 pos_type __ret = pos_type(-1);
23561 sentry __cerb(*
this,
true);
23567 __ret = this->rdbuf()->pubseekoff(0, ios_base::cur,
23572 this->_M_setstate(ios_base::badbit);
23576 { this->_M_setstate(ios_base::badbit); }
23581 template<
typename _CharT,
typename _Traits>
23582 basic_istream<_CharT, _Traits>&
23583 basic_istream<_CharT, _Traits>::
23584 seekg(pos_type __pos)
23589 this->clear(this->rdstate() & ~ios_base::eofbit);
23590 sentry __cerb(*
this,
true);
23593 ios_base::iostate __err = ios_base::goodbit;
23599 const pos_type __p = this->rdbuf()->pubseekpos(__pos,
23603 if (__p == pos_type(off_type(-1)))
23604 __err |= ios_base::failbit;
23609 this->_M_setstate(ios_base::badbit);
23613 { this->_M_setstate(ios_base::badbit); }
23615 this->setstate(__err);
23620 template<
typename _CharT,
typename _Traits>
23621 basic_istream<_CharT, _Traits>&
23622 basic_istream<_CharT, _Traits>::
23623 seekg(off_type __off, ios_base::seekdir __dir)
23628 this->clear(this->rdstate() & ~ios_base::eofbit);
23629 sentry __cerb(*
this,
true);
23632 ios_base::iostate __err = ios_base::goodbit;
23638 const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir,
23642 if (__p == pos_type(off_type(-1)))
23643 __err |= ios_base::failbit;
23648 this->_M_setstate(ios_base::badbit);
23652 { this->_M_setstate(ios_base::badbit); }
23654 this->setstate(__err);
23660 template<
typename _CharT,
typename _Traits>
23661 basic_istream<_CharT, _Traits>&
23662 operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
23664 typedef basic_istream<_CharT, _Traits> __istream_type;
23665 typedef typename __istream_type::int_type __int_type;
23667 typename __istream_type::sentry __cerb(__in,
false);
23670 ios_base::iostate __err = ios_base::goodbit;
23673 const __int_type __cb = __in.rdbuf()->sbumpc();
23674 if (!_Traits::eq_int_type(__cb, _Traits::eof()))
23675 __c = _Traits::to_char_type(__cb);
23677 __err |= (ios_base::eofbit | ios_base::failbit);
23681 __in._M_setstate(ios_base::badbit);
23685 { __in._M_setstate(ios_base::badbit); }
23687 __in.setstate(__err);
23692 template<
typename _CharT,
typename _Traits>
23693 basic_istream<_CharT, _Traits>&
23694 operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
23696 typedef basic_istream<_CharT, _Traits> __istream_type;
23697 typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
23698 typedef typename _Traits::int_type int_type;
23699 typedef _CharT char_type;
23700 typedef ctype<_CharT> __ctype_type;
23702 streamsize __extracted = 0;
23703 ios_base::iostate __err = ios_base::goodbit;
23704 typename __istream_type::sentry __cerb(__in,
false);
23710 streamsize __num = __in.width();
23712 __num = __gnu_cxx::__numeric_traits<streamsize>::__max;
23714 const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc());
23716 const int_type __eof = _Traits::eof();
23717 __streambuf_type* __sb = __in.rdbuf();
23718 int_type __c = __sb->sgetc();
23720 while (__extracted < __num - 1
23721 && !_Traits::eq_int_type(__c, __eof)
23722 && !__ct.is(ctype_base::space,
23723 _Traits::to_char_type(__c)))
23725 *__s++ = _Traits::to_char_type(__c);
23727 __c = __sb->snextc();
23729 if (_Traits::eq_int_type(__c, __eof))
23730 __err |= ios_base::eofbit;
23734 *__s = char_type();
23739 __in._M_setstate(ios_base::badbit);
23743 { __in._M_setstate(ios_base::badbit); }
23746 __err |= ios_base::failbit;
23748 __in.setstate(__err);
23753 template<
typename _CharT,
typename _Traits>
23754 basic_istream<_CharT, _Traits>&
23755 ws(basic_istream<_CharT, _Traits>& __in)
23757 typedef basic_istream<_CharT, _Traits> __istream_type;
23758 typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
23759 typedef typename __istream_type::int_type __int_type;
23760 typedef ctype<_CharT> __ctype_type;
23762 const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc());
23763 const __int_type __eof = _Traits::eof();
23764 __streambuf_type* __sb = __in.rdbuf();
23765 __int_type __c = __sb->sgetc();
23767 while (!_Traits::eq_int_type(__c, __eof)
23768 && __ct.is(ctype_base::space, _Traits::to_char_type(__c)))
23769 __c = __sb->snextc();
23771 if (_Traits::eq_int_type(__c, __eof))
23772 __in.setstate(ios_base::eofbit);
23779 extern template class basic_istream<char>;
23780 extern template istream& ws(istream&);
23781 extern template istream& operator>>(istream&,
char&);
23782 extern template istream& operator>>(istream&,
char*);
23783 extern template istream& operator>>(istream&,
unsigned char&);
23784 extern template istream& operator>>(istream&,
signed char&);
23785 extern template istream& operator>>(istream&,
unsigned char*);
23786 extern template istream& operator>>(istream&,
signed char*);
23788 extern template istream& istream::_M_extract(
unsigned short&);
23789 extern template istream& istream::_M_extract(
unsigned int&);
23790 extern template istream& istream::_M_extract(
long&);
23791 extern template istream& istream::_M_extract(
unsigned long&);
23792 extern template istream& istream::_M_extract(
bool&);
23794 extern template istream& istream::_M_extract(
long long&);
23795 extern template istream& istream::_M_extract(
unsigned long long&);
23797 extern template istream& istream::_M_extract(
float&);
23798 extern template istream& istream::_M_extract(
double&);
23799 extern template istream& istream::_M_extract(
long double&);
23800 extern template istream& istream::_M_extract(
void*&);
23802 extern template class basic_iostream<char>;
23805 extern template class basic_istream<wchar_t>;
23806 extern template wistream& ws(wistream&);
23807 extern template wistream& operator>>(wistream&,
wchar_t&);
23808 extern template wistream& operator>>(wistream&,
wchar_t*);
23810 extern template wistream& wistream::_M_extract(
unsigned short&);
23811 extern template wistream& wistream::_M_extract(
unsigned int&);
23812 extern template wistream& wistream::_M_extract(
long&);
23813 extern template wistream& wistream::_M_extract(
unsigned long&);
23814 extern template wistream& wistream::_M_extract(
bool&);
23816 extern template wistream& wistream::_M_extract(
long long&);
23817 extern template wistream& wistream::_M_extract(
unsigned long long&);
23819 extern template wistream& wistream::_M_extract(
float&);
23820 extern template wistream& wistream::_M_extract(
double&);
23821 extern template wistream& wistream::_M_extract(
long double&);
23822 extern template wistream& wistream::_M_extract(
void*&);
23824 extern template class basic_iostream<wchar_t>;
23830 # 880 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 2 3
23831 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 2 3
23834 namespace std __attribute__ ((__visibility__ (
"default")))
23836 # 63 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
23837 template<
typename _CharT,
typename _Traits,
typename _Alloc>
23838 class basic_stringbuf :
public basic_streambuf<_CharT, _Traits>
23842 typedef _CharT char_type;
23843 typedef _Traits traits_type;
23846 typedef _Alloc allocator_type;
23847 typedef typename traits_type::int_type int_type;
23848 typedef typename traits_type::pos_type pos_type;
23849 typedef typename traits_type::off_type off_type;
23851 typedef basic_streambuf<char_type, traits_type> __streambuf_type;
23852 typedef basic_string<char_type, _Traits, _Alloc> __string_type;
23853 typedef typename __string_type::size_type __size_type;
23857 ios_base::openmode _M_mode;
23860 __string_type _M_string;
23863 # 97 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
23865 basic_stringbuf(ios_base::openmode __mode = ios_base::in | ios_base::out)
23866 : __streambuf_type(), _M_mode(__mode), _M_string()
23868 # 110 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
23870 basic_stringbuf(
const __string_type& __str,
23871 ios_base::openmode __mode = ios_base::in | ios_base::out)
23872 : __streambuf_type(), _M_mode(), _M_string(__str.data(), __str.size())
23873 { _M_stringbuf_init(__mode); }
23874 # 125 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
23878 __string_type __ret;
23882 if (this->pptr() > this->egptr())
23883 __ret = __string_type(this->pbase(), this->pptr());
23885 __ret = __string_type(this->pbase(), this->egptr());
23891 # 149 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
23893 str(
const __string_type& __s)
23896 _M_string.assign(__s.data(), __s.size());
23897 _M_stringbuf_init(_M_mode);
23903 _M_stringbuf_init(ios_base::openmode __mode)
23906 __size_type __len = 0;
23907 if (_M_mode & (ios_base::ate | ios_base::app))
23908 __len = _M_string.size();
23909 _M_sync(const_cast<char_type*>(_M_string.data()), 0, __len);
23915 streamsize __ret = -1;
23916 if (_M_mode & ios_base::in)
23919 __ret = this->egptr() - this->gptr();
23928 pbackfail(int_type __c = traits_type::eof());
23931 overflow(int_type __c = traits_type::eof());
23932 # 201 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
23933 virtual __streambuf_type*
23934 setbuf(char_type* __s, streamsize __n)
23936 if (__s && __n >= 0)
23947 _M_sync(__s, __n, 0);
23953 seekoff(off_type __off, ios_base::seekdir __way,
23954 ios_base::openmode __mode = ios_base::in | ios_base::out);
23957 seekpos(pos_type __sp,
23958 ios_base::openmode __mode = ios_base::in | ios_base::out);
23964 _M_sync(char_type* __base, __size_type __i, __size_type __o);
23971 const bool __testin = _M_mode & ios_base::in;
23972 if (this->pptr() && this->pptr() > this->egptr())
23975 this->setg(this->eback(), this->gptr(), this->pptr());
23977 this->setg(this->pptr(), this->pptr(), this->pptr());
23984 _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off);
23986 # 271 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
23987 template<
typename _CharT,
typename _Traits,
typename _Alloc>
23988 class basic_istringstream :
public basic_istream<_CharT, _Traits>
23992 typedef _CharT char_type;
23993 typedef _Traits traits_type;
23996 typedef _Alloc allocator_type;
23997 typedef typename traits_type::int_type int_type;
23998 typedef typename traits_type::pos_type pos_type;
23999 typedef typename traits_type::off_type off_type;
24002 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
24003 typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type;
24004 typedef basic_istream<char_type, traits_type> __istream_type;
24007 __stringbuf_type _M_stringbuf;
24010 # 307 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24012 basic_istringstream(ios_base::openmode __mode = ios_base::in)
24013 : __istream_type(), _M_stringbuf(__mode | ios_base::in)
24014 { this->init(&_M_stringbuf); }
24015 # 325 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24017 basic_istringstream(
const __string_type& __str,
24018 ios_base::openmode __mode = ios_base::in)
24019 : __istream_type(), _M_stringbuf(__str, __mode | ios_base::in)
24020 { this->init(&_M_stringbuf); }
24028 ~basic_istringstream()
24030 # 347 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24033 {
return const_cast<__stringbuf_type*
>(&_M_stringbuf); }
24041 {
return _M_stringbuf.str(); }
24050 str(
const __string_type& __s)
24051 { _M_stringbuf.str(__s); }
24053 # 386 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24054 template <
typename _CharT,
typename _Traits,
typename _Alloc>
24055 class basic_ostringstream :
public basic_ostream<_CharT, _Traits>
24059 typedef _CharT char_type;
24060 typedef _Traits traits_type;
24063 typedef _Alloc allocator_type;
24064 typedef typename traits_type::int_type int_type;
24065 typedef typename traits_type::pos_type pos_type;
24066 typedef typename traits_type::off_type off_type;
24069 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
24070 typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type;
24071 typedef basic_ostream<char_type, traits_type> __ostream_type;
24074 __stringbuf_type _M_stringbuf;
24077 # 422 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24079 basic_ostringstream(ios_base::openmode __mode = ios_base::out)
24080 : __ostream_type(), _M_stringbuf(__mode | ios_base::out)
24081 { this->init(&_M_stringbuf); }
24082 # 440 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24084 basic_ostringstream(
const __string_type& __str,
24085 ios_base::openmode __mode = ios_base::out)
24086 : __ostream_type(), _M_stringbuf(__str, __mode | ios_base::out)
24087 { this->init(&_M_stringbuf); }
24095 ~basic_ostringstream()
24097 # 462 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24100 {
return const_cast<__stringbuf_type*
>(&_M_stringbuf); }
24108 {
return _M_stringbuf.str(); }
24117 str(
const __string_type& __s)
24118 { _M_stringbuf.str(__s); }
24120 # 501 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24121 template <
typename _CharT,
typename _Traits,
typename _Alloc>
24122 class basic_stringstream :
public basic_iostream<_CharT, _Traits>
24126 typedef _CharT char_type;
24127 typedef _Traits traits_type;
24130 typedef _Alloc allocator_type;
24131 typedef typename traits_type::int_type int_type;
24132 typedef typename traits_type::pos_type pos_type;
24133 typedef typename traits_type::off_type off_type;
24136 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
24137 typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type;
24138 typedef basic_iostream<char_type, traits_type> __iostream_type;
24141 __stringbuf_type _M_stringbuf;
24144 # 536 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24146 basic_stringstream(ios_base::openmode __m = ios_base::out | ios_base::in)
24147 : __iostream_type(), _M_stringbuf(__m)
24148 { this->init(&_M_stringbuf); }
24149 # 552 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24151 basic_stringstream(
const __string_type& __str,
24152 ios_base::openmode __m = ios_base::out | ios_base::in)
24153 : __iostream_type(), _M_stringbuf(__str, __m)
24154 { this->init(&_M_stringbuf); }
24162 ~basic_stringstream()
24164 # 574 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24167 {
return const_cast<__stringbuf_type*
>(&_M_stringbuf); }
24175 {
return _M_stringbuf.str(); }
24184 str(
const __string_type& __s)
24185 { _M_stringbuf.str(__s); }
24192 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/sstream.tcc" 1 3
24193 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/sstream.tcc" 3
24195 namespace std __attribute__ ((__visibility__ (
"default")))
24199 template <
class _CharT,
class _Traits,
class _Alloc>
24200 typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
24201 basic_stringbuf<_CharT, _Traits, _Alloc>::
24202 pbackfail(int_type __c)
24204 int_type __ret = traits_type::eof();
24205 if (this->eback() < this->gptr())
24209 const bool __testeof = traits_type::eq_int_type(__c, __ret);
24212 const bool __testeq = traits_type::eq(traits_type::
24215 const bool __testout = this->_M_mode & ios_base::out;
24216 if (__testeq || __testout)
24220 *this->gptr() = traits_type::to_char_type(__c);
24227 __ret = traits_type::not_eof(__c);
24233 template <
class _CharT,
class _Traits,
class _Alloc>
24234 typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
24235 basic_stringbuf<_CharT, _Traits, _Alloc>::
24236 overflow(int_type __c)
24238 const bool __testout = this->_M_mode & ios_base::out;
24239 if (__builtin_expect(!__testout,
false))
24240 return traits_type::eof();
24242 const bool __testeof = traits_type::eq_int_type(__c, traits_type::eof());
24243 if (__builtin_expect(__testeof,
false))
24244 return traits_type::not_eof(__c);
24246 const __size_type __capacity = _M_string.capacity();
24247 const __size_type __max_size = _M_string.max_size();
24248 const bool __testput = this->pptr() < this->epptr();
24249 if (__builtin_expect(!__testput && __capacity == __max_size,
false))
24250 return traits_type::eof();
24254 const char_type __conv = traits_type::to_char_type(__c);
24257 # 110 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/sstream.tcc" 3
24258 const __size_type __opt_len = std::max(__size_type(2 * __capacity),
24260 const __size_type __len = std::min(__opt_len, __max_size);
24261 __string_type __tmp;
24262 __tmp.reserve(__len);
24264 __tmp.assign(this->pbase(), this->epptr() - this->pbase());
24265 __tmp.push_back(__conv);
24266 _M_string.swap(__tmp);
24267 _M_sync(const_cast<char_type*>(_M_string.data()),
24268 this->gptr() - this->eback(), this->pptr() - this->pbase());
24271 *this->pptr() = __conv;
24276 template <
class _CharT,
class _Traits,
class _Alloc>
24277 typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
24278 basic_stringbuf<_CharT, _Traits, _Alloc>::
24281 int_type __ret = traits_type::eof();
24282 const bool __testin = this->_M_mode & ios_base::in;
24288 if (this->gptr() < this->egptr())
24289 __ret = traits_type::to_int_type(*this->gptr());
24294 template <
class _CharT,
class _Traits,
class _Alloc>
24295 typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type
24296 basic_stringbuf<_CharT, _Traits, _Alloc>::
24297 seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode)
24299 pos_type __ret = pos_type(off_type(-1));
24300 bool __testin = (ios_base::in & this->_M_mode & __mode) != 0;
24301 bool __testout = (ios_base::out & this->_M_mode & __mode) != 0;
24302 const bool __testboth = __testin && __testout && __way != ios_base::cur;
24303 __testin &= !(__mode & ios_base::out);
24304 __testout &= !(__mode & ios_base::in);
24308 const char_type* __beg = __testin ? this->eback() : this->pbase();
24309 if ((__beg || !__off) && (__testin || __testout || __testboth))
24313 off_type __newoffi = __off;
24314 off_type __newoffo = __newoffi;
24315 if (__way == ios_base::cur)
24317 __newoffi += this->gptr() - __beg;
24318 __newoffo += this->pptr() - __beg;
24320 else if (__way == ios_base::end)
24321 __newoffo = __newoffi += this->egptr() - __beg;
24323 if ((__testin || __testboth)
24325 && this->egptr() - __beg >= __newoffi)
24327 this->setg(this->eback(), this->eback() + __newoffi,
24329 __ret = pos_type(__newoffi);
24331 if ((__testout || __testboth)
24333 && this->egptr() - __beg >= __newoffo)
24335 _M_pbump(this->pbase(), this->epptr(), __newoffo);
24336 __ret = pos_type(__newoffo);
24342 template <
class _CharT,
class _Traits,
class _Alloc>
24343 typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type
24344 basic_stringbuf<_CharT, _Traits, _Alloc>::
24345 seekpos(pos_type __sp, ios_base::openmode __mode)
24347 pos_type __ret = pos_type(off_type(-1));
24348 const bool __testin = (ios_base::in & this->_M_mode & __mode) != 0;
24349 const bool __testout = (ios_base::out & this->_M_mode & __mode) != 0;
24351 const char_type* __beg = __testin ? this->eback() : this->pbase();
24352 if ((__beg || !off_type(__sp)) && (__testin || __testout))
24356 const off_type __pos(__sp);
24357 const bool __testpos = (0 <= __pos
24358 && __pos <= this->egptr() - __beg);
24362 this->setg(this->eback(), this->eback() + __pos,
24365 _M_pbump(this->pbase(), this->epptr(), __pos);
24372 template <
class _CharT,
class _Traits,
class _Alloc>
24374 basic_stringbuf<_CharT, _Traits, _Alloc>::
24375 _M_sync(char_type* __base, __size_type __i, __size_type __o)
24377 const bool __testin = _M_mode & ios_base::in;
24378 const bool __testout = _M_mode & ios_base::out;
24379 char_type* __endg = __base + _M_string.size();
24380 char_type* __endp = __base + _M_string.capacity();
24382 if (__base != _M_string.data())
24391 this->setg(__base, __base + __i, __endg);
24394 _M_pbump(__base, __endp, __o);
24399 this->setg(__endg, __endg, __endg);
24403 template <
class _CharT,
class _Traits,
class _Alloc>
24405 basic_stringbuf<_CharT, _Traits, _Alloc>::
24406 _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off)
24408 this->setp(__pbeg, __pend);
24409 while (__off > __gnu_cxx::__numeric_traits<int>::__max)
24411 this->pbump(__gnu_cxx::__numeric_traits<int>::__max);
24412 __off -= __gnu_cxx::__numeric_traits<int>::__max;
24414 this->pbump(__off);
24420 extern template class basic_stringbuf<char>;
24421 extern template class basic_istringstream<char>;
24422 extern template class basic_ostringstream<char>;
24423 extern template class basic_stringstream<char>;
24426 extern template class basic_stringbuf<wchar_t>;
24427 extern template class basic_istringstream<wchar_t>;
24428 extern template class basic_ostringstream<wchar_t>;
24429 extern template class basic_stringstream<wchar_t>;
24435 # 601 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 2 3
24436 # 27 "./integral.hpp" 2
24438 # 1 "./algebra.hpp" 1
24439 # 24 "./algebra.hpp"
24440 # 1 "./function_alias_decl.hpp" 1
24441 # 25 "./algebra.hpp" 2
24442 # 1 "./chameleon.hpp" 1
24443 # 41 "./chameleon.hpp"
24449 struct value_chameleon
24451 static constexpr
const int value = 0;
24457 struct function_chameleon
24469 # 26 "./algebra.hpp" 2
24470 # 1 "./function.hpp" 1
24471 # 26 "./function.hpp"
24476 # 38 "./function.hpp"
24477 template<
typename T>
24478 struct is_turbo_function
24480 template<
typename U>
static std::true_type test(
typename U::result* );
24481 template<
typename U>
static std::false_type test( ... );
24483 static constexpr
bool result = decltype( test<T>(
nullptr ) )::value;
24485 # 55 "./function.hpp"
24486 template<
typename T>
24487 struct is_stl_function
24489 template<
typename U>
static std::true_type test(
typename U::type* );
24490 template<
typename U>
static std::false_type test( ... );
24492 static constexpr
bool result = decltype( test<T>(
nullptr ) )::value;
24494 # 72 "./function.hpp"
24495 template<
typename T>
24505 template<
typename T, T V>
24506 struct is_function<std::integral_constant<T,V>>
24508 static constexpr
bool result =
false;
24517 template<
typename E>
24518 using is_function = std::integral_constant<bool,tml::impl::is_function<E>::result>;
24525 template<
typename E>
24526 using is_turbo_function = std::integral_constant<bool,tml::impl::is_turbo_function<E>::result>;
24533 template<
typename E>
24534 using is_stl_function = std::integral_constant<bool,tml::impl::is_stl_function<E>::result>;
24535 # 123 "./function.hpp"
24536 template<
typename RESULT>
24539 using result = RESULT;
24542 # 27 "./algebra.hpp" 2
24543 # 41 "./algebra.hpp"
24552 template<
typename T>
24555 template<
typename T>
24558 template<
typename T>
24567 template<
typename T>
24573 template<
typename T>
24580 template<
typename T>
24587 template<
typename T>
24593 template<
typename T>
24600 template<
typename T>
24607 template<
typename T>
24614 template<
typename T>
24617 # 122 "./algebra.hpp"
24618 template<
typename LHS ,
typename RHS>
24625 template<
typename LHS ,
typename RHS>
24632 template<
typename LHS ,
typename RHS>
24639 template<
typename LHS ,
typename RHS>
24649 template<
typename LHS ,
typename RHS>
24656 template<
typename LHS ,
typename RHS>
24663 template<
typename OP>
24666 # 179 "./algebra.hpp"
24667 template<
typename LHS ,
typename RHS>
24676 template<
typename LHS ,
typename RHS>
24677 struct not_equal :
public tml::logical_not<typename tml::equal<LHS,RHS>::result>
24686 template<
typename LHS ,
typename RHS>
24696 template<
typename LHS ,
typename RHS>
24697 struct less_or_equal :
public tml::logical_or<typename tml::less_than<LHS,RHS>::result,
24698 typename tml::equal<LHS,RHS>::result>
24707 template<
typename LHS ,
typename RHS>
24717 template<
typename LHS ,
typename RHS>
24721 # 29 "./integral.hpp" 2
24723 # 1 "./to_string.hpp" 1
24724 # 55 "./to_string.hpp"
24725 # 1 "./impl/demangle.hpp" 1
24726 # 26 "./impl/demangle.hpp"
24727 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/typeinfo" 1 3
24728 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/typeinfo" 3
24735 #pragma GCC visibility push(default)
24739 namespace __cxxabiv1
24741 class __class_type_info;
24743 # 80 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/typeinfo" 3
24759 virtual ~type_info();
24763 const char* name() const noexcept
24764 {
return __name[0] ==
'*' ? __name + 1 : __name; }
24765 # 115 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/typeinfo" 3
24766 bool before(
const type_info& __arg)
const noexcept
24767 {
return (__name[0] ==
'*' && __arg.__name[0] ==
'*')
24768 ? __name < __arg.__name
24769 : __builtin_strcmp (__name, __arg.__name) < 0; }
24771 bool operator==(
const type_info& __arg)
const noexcept
24773 return ((__name == __arg.__name)
24774 || (__name[0] !=
'*' &&
24775 __builtin_strcmp (__name, __arg.__name) == 0));
24777 # 136 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/typeinfo" 3
24778 bool operator!=(
const type_info& __arg)
const noexcept
24779 {
return !operator==(__arg); }
24782 size_t hash_code() const noexcept
24785 return _Hash_bytes(name(), __builtin_strlen(name()),
24786 static_cast<size_t>(0xc70f6907UL));
24794 virtual bool __is_pointer_p()
const;
24797 virtual bool __is_function_p()
const;
24805 virtual bool __do_catch(
const type_info *__thr_type,
void **__thr_obj,
24806 unsigned __outer)
const;
24810 void **__obj_ptr)
const;
24813 const char *__name;
24815 explicit type_info(
const char *__n): __name(__n) { }
24819 type_info& operator=(
const type_info&);
24820 type_info(
const type_info&);
24829 class bad_cast :
public exception
24832 bad_cast() noexcept { }
24836 virtual ~bad_cast() noexcept;
24839 virtual const
char* what() const noexcept;
24846 class bad_typeid : public exception
24849 bad_typeid () noexcept { }
24853 virtual ~bad_typeid() noexcept;
24856 virtual const
char* what() const noexcept;
24862 #pragma GCC visibility pop
24863 # 27 "./impl/demangle.hpp" 2
24864 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/iterator" 1 3
24865 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/iterator" 3
24873 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stream_iterator.h" 1 3
24874 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stream_iterator.h" 3
24878 namespace std __attribute__ ((__visibility__ ("default")))
24880 # 47 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stream_iterator.h" 3
24881 template<
typename _Tp,
typename _CharT = char,
24882 typename _Traits = char_traits<_CharT>,
typename _Dist = ptrdiff_t>
24883 class istream_iterator
24884 :
public iterator<input_iterator_tag, _Tp, _Dist, const _Tp*, const _Tp&>
24887 typedef _CharT char_type;
24888 typedef _Traits traits_type;
24889 typedef basic_istream<_CharT, _Traits> istream_type;
24892 istream_type* _M_stream;
24898 constexpr istream_iterator()
24899 : _M_stream(0), _M_value(), _M_ok(false) {}
24902 istream_iterator(istream_type& __s)
24906 istream_iterator(
const istream_iterator& __obj)
24907 : _M_stream(__obj._M_stream), _M_value(__obj._M_value),
24921 operator->()
const {
return &(operator*()); }
24939 istream_iterator __tmp = *
this;
24945 _M_equal(
const istream_iterator& __x)
const
24946 {
return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); }
24952 _M_ok = (_M_stream && *_M_stream) ?
true :
false;
24955 *_M_stream >> _M_value;
24956 _M_ok = *_M_stream ?
true :
false;
24962 template<
typename _Tp,
typename _CharT,
typename _Traits,
typename _Dist>
24964 operator==(
const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x,
24965 const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y)
24966 {
return __x._M_equal(__y); }
24969 template <
class _Tp,
class _CharT,
class _Traits,
class _Dist>
24971 operator!=(
const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x,
24972 const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y)
24973 {
return !__x._M_equal(__y); }
24974 # 152 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stream_iterator.h" 3
24975 template<
typename _Tp,
typename _CharT = char,
24976 typename _Traits = char_traits<_CharT> >
24977 class ostream_iterator
24978 :
public iterator<output_iterator_tag, void, void, void, void>
24983 typedef _CharT char_type;
24984 typedef _Traits traits_type;
24985 typedef basic_ostream<_CharT, _Traits> ostream_type;
24989 ostream_type* _M_stream;
24990 const _CharT* _M_string;
24994 ostream_iterator(ostream_type& __s) : _M_stream(&__s), _M_string(0) {}
24995 # 183 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stream_iterator.h" 3
24996 ostream_iterator(ostream_type& __s,
const _CharT* __c)
24997 : _M_stream(&__s), _M_string(__c) { }
25000 ostream_iterator(
const ostream_iterator& __obj)
25001 : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { }
25006 operator=(
const _Tp& __value)
25011 *_M_stream << __value;
25012 if (_M_string) *_M_stream << _M_string;
25033 # 67 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/iterator" 2 3
25034 # 28 "./impl/demangle.hpp" 2
25035 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 1 3
25036 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
25037 # 29 "./impl/demangle.hpp" 2
25038 # 65 "./impl/demangle.hpp"
25039 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 1 3
25040 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 3
25042 #pragma GCC visibility push(default)
25045 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3
25046 # 49 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 2 3
25048 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/cxxabi_tweaks.h" 1 3
25049 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/cxxabi_tweaks.h" 3
25050 namespace __cxxabiv1
25054 # 46 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/cxxabi_tweaks.h" 3
25055 __extension__
typedef int __guard __attribute__((mode (__DI__)));
25058 typedef void __cxa_vec_ctor_return_type;
25061 typedef void __cxa_cdtor_return_type;
25066 # 51 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 2 3
25074 namespace __cxxabiv1
25080 typedef __cxa_cdtor_return_type (*__cxa_cdtor_type)(
void *);
25084 __cxa_vec_new(
size_t __element_count,
size_t __element_size,
25085 size_t __padding_size, __cxa_cdtor_type __constructor,
25086 __cxa_cdtor_type __destructor);
25089 __cxa_vec_new2(
size_t __element_count,
size_t __element_size,
25090 size_t __padding_size, __cxa_cdtor_type __constructor,
25091 __cxa_cdtor_type __destructor,
void *(*__alloc) (
size_t),
25092 void (*__dealloc) (
void*));
25095 __cxa_vec_new3(
size_t __element_count,
size_t __element_size,
25096 size_t __padding_size, __cxa_cdtor_type __constructor,
25097 __cxa_cdtor_type __destructor,
void *(*__alloc) (
size_t),
25098 void (*__dealloc) (
void*,
size_t));
25101 __cxa_vec_ctor_return_type
25102 __cxa_vec_ctor(
void* __array_address,
size_t __element_count,
25103 size_t __element_size, __cxa_cdtor_type __constructor,
25104 __cxa_cdtor_type __destructor);
25106 __cxa_vec_ctor_return_type
25107 __cxa_vec_cctor(
void* __dest_array,
void* __src_array,
25108 size_t __element_count,
size_t __element_size,
25109 __cxa_cdtor_return_type (*__constructor) (
void*,
void*),
25110 __cxa_cdtor_type __destructor);
25114 __cxa_vec_dtor(
void* __array_address,
size_t __element_count,
25115 size_t __element_size, __cxa_cdtor_type __destructor);
25118 __cxa_vec_cleanup(
void* __array_address,
size_t __element_count,
size_t __s,
25119 __cxa_cdtor_type __destructor) noexcept;
25123 __cxa_vec_delete(
void* __array_address,
size_t __element_size,
25124 size_t __padding_size, __cxa_cdtor_type __destructor);
25127 __cxa_vec_delete2(
void* __array_address,
size_t __element_size,
25128 size_t __padding_size, __cxa_cdtor_type __destructor,
25129 void (*__dealloc) (
void*));
25132 __cxa_vec_delete3(
void* __array_address,
size_t __element_size,
25133 size_t __padding_size, __cxa_cdtor_type __destructor,
25134 void (*__dealloc) (
void*,
size_t));
25137 __cxa_guard_acquire(__guard*);
25140 __cxa_guard_release(__guard*) noexcept;
25143 __cxa_guard_abort(__guard*) noexcept;
25147 __cxa_atexit(
void (*)(
void*),
void*,
void*) noexcept;
25150 __cxa_finalize(
void*);
25154 __cxa_thread_atexit(
void (*)(
void*),
void*,
void *) noexcept;
25158 __cxa_pure_virtual(
void) __attribute__ ((__noreturn__));
25161 __cxa_deleted_virtual(
void) __attribute__ ((__noreturn__));
25165 __cxa_bad_cast() __attribute__((__noreturn__));
25168 __cxa_bad_typeid() __attribute__((__noreturn__));
25171 __cxa_throw_bad_array_new_length() __attribute__((__noreturn__));
25174 __cxa_throw_bad_array_length() __attribute__((__noreturn__));
25175 # 200 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 3
25177 __cxa_demangle(
const char* __mangled_name,
char* __output_buffer,
25178 size_t* __length,
int* __status);
25189 namespace __cxxabiv1
25226 __is_function_p()
const;
25244 unsigned int __flags;
25259 __const_mask = 0x1,
25260 __volatile_mask = 0x2,
25261 __restrict_mask = 0x4,
25262 __incomplete_mask = 0x8,
25263 __incomplete_class_mask = 0x10
25275 unsigned int __outer)
const;
25277 inline virtual bool
25279 unsigned __outer)
const;
25298 __is_pointer_p()
const;
25302 unsigned __outer)
const;
25331 unsigned __outer)
const;
25342 long __offset_flags;
25345 enum __offset_flags_masks
25347 __virtual_mask = 0x1,
25348 __public_mask = 0x2,
25355 __is_virtual_p()
const
25356 {
return __offset_flags & __virtual_mask; }
25359 __is_public_p()
const
25360 {
return __offset_flags & __public_mask; }
25368 return static_cast<ptrdiff_t
>(__offset_flags) >> __offset_shift;
25400 __contained_virtual_mask = __base_class_type_info::__virtual_mask,
25403 __contained_public_mask = __base_class_type_info::__public_mask,
25406 __contained_mask = 1 << __base_class_type_info::__hwm_bit,
25408 __contained_private = __contained_mask,
25409 __contained_public = __contained_mask | __contained_public_mask
25412 struct __upcast_result;
25413 struct __dyncast_result;
25421 __do_catch(
const type_info* __thr_type,
void** __thr_obj,
25422 unsigned __outer)
const;
25429 __upcast_result& __restrict __result)
const;
25438 __find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
25440 const void* __src_ptr)
const;
25441 # 473 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 3
25443 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
25446 __dyncast_result& __result)
const;
25453 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
25455 const void* __src_ptr)
const;
25479 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
25482 __dyncast_result& __result)
const;
25485 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
25487 const void* __sub_ptr)
const;
25491 __upcast_result& __restrict __result)
const;
25498 unsigned int __flags;
25499 unsigned int __base_count;
25516 __non_diamond_repeat_mask = 0x1,
25517 __diamond_shaped_mask = 0x2,
25518 __flags_unknown_mask = 0x10
25524 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
25527 __dyncast_result& __result)
const;
25530 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
25532 const void* __src_ptr)
const;
25536 __upcast_result& __restrict __result)
const;
25540 struct __cxa_exception;
25541 struct __cxa_refcounted_exception;
25542 struct __cxa_dependent_exception;
25543 struct __cxa_eh_globals;
25547 # 586 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 3
25549 __dynamic_cast(
const void* __src_ptr,
25552 ptrdiff_t __src2dst);
25553 # 599 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 3
25555 __cxa_get_globals() noexcept __attribute__ ((__const__));
25558 __cxa_get_globals_fast() noexcept __attribute__ ((__const__));
25562 __cxa_allocate_exception(
size_t) noexcept;
25566 __cxa_free_exception(
void*) noexcept;
25570 __cxa_throw(
void*, std::type_info*,
void ( *) (
void *))
25571 __attribute__((__noreturn__));
25575 __cxa_get_exception_ptr(
void*) noexcept __attribute__ ((__pure__));
25578 __cxa_begin_catch(
void*) noexcept;
25584 __cxa_rethrow() __attribute__((__noreturn__));
25589 __cxa_current_exception_type() noexcept __attribute__ ((__pure__));
25594 __cxa_dependent_exception*
25595 __cxa_allocate_dependent_exception() noexcept;
25599 __cxa_free_dependent_exception(__cxa_dependent_exception*) noexcept;
25607 virtual ~__foreign_exception()
throw();
25608 virtual void __pure_dummy() = 0;
25612 # 678 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 3
25613 namespace abi = __cxxabiv1;
25615 namespace __gnu_cxx
25617 # 694 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 3
25627 #pragma GCC visibility pop
25628 # 66 "./impl/demangle.hpp" 2
25634 std::string demangle(
const std::string& name )
25638 char* demangled_name = abi::__cxa_demangle( name.c_str() , 0 , 0 , &status );
25643 std::string result{ demangled_name };
25645 std::free( demangled_name );
25650 # 97 "./impl/demangle.hpp"
25652 # 56 "./to_string.hpp" 2
25661 template<
typename T>
25664 operator std::string()
const
25666 return tml::impl::demangle(
typeid( T ).name() );
25671 template<
typename T>
25672 std::string to_string()
25677 template<
typename T>
25678 std::string to_string(
const T& )
25680 return tml::to_string<T>();
25683 # 31 "./integral.hpp" 2
25684 # 1 "./to_runtime.hpp" 1
25685 # 38 "./to_runtime.hpp"
25690 template<
typename T>
25693 static_assert(
sizeof(T) !=
sizeof(T) ,
"You should write a custom to runtime conversion for your type" );
25699 template<
typename T>
25700 struct runtime_representation
25702 static_assert(
sizeof(T) !=
sizeof(T) ,
"You should specify the runtime representation of your type" );
25711 template<
typename T>
25714 # 77 "./to_runtime.hpp"
25715 template<
typename T>
25721 template<
typename T>
25727 # 32 "./integral.hpp" 2
25728 # 82 "./integral.hpp"
25734 template<
typename T , T V>
25735 using integral_constant = std::integral_constant<T,V>;
25740 template<
typename T , T V>
25741 struct opposite<tml::integral_constant<T,V>> :
public tml::function<tml::integral_constant<T,-V>>
25747 template<
typename T , T V>
25748 struct abs<tml::integral_constant<T,V>> :
public tml::function<tml::integral_constant<T,((V < 0) ? -V : V)>>
25756 template<typename T , T V>
25757 struct zero<tml::integral_constant<T,V>> : public tml::function<tml::integral_constant<T,0>>
25760 template<typename T , T V>
25761 struct one<tml::integral_constant<T,V>> : public tml::function<tml::integral_constant<T,1>>
25767 template<typename T , T V>
25768 struct sign<tml::integral_constant<T,V>> : public tml::function<tml::integral_constant<bool,(V >= 0)>>
25775 template<
typename T , T V>
25776 struct to_string<tml::integral_constant<T,V>>
25778 operator std::string()
const
25780 return std::to_string( V );
25788 struct to_string<tml::integral_constant<bool,V>>
25790 operator std::string()
const
25792 std::stringstream ss;
25794 ss << std::boolalpha << V;
25804 struct to_string<tml::integral_constant<char,V>>
25806 operator std::string()
const
25808 std::stringstream ss;
25820 template<
typename T , T V>
25821 struct runtime_representation<tml::integral_constant<T,V>> :
public tml::function<T>
25824 template<
typename T , T V>
25825 struct to_runtime<tml::integral_constant<T,V>>
25827 static constexpr T execute()
25837 using true_type = std::true_type;
25838 using false_type = std::false_type;
25843 template<std::
size_t V>
25844 using size_t = tml::integral_constant<std::size_t,V>;
25852 namespace basic_types_declarations
25860 using True = tml::true_type;
25861 using False = tml::false_type;
25864 using Char = tml::integral_constant<char,V>;
25866 using Int = tml::integral_constant<int,V>;
25868 using Bool = tml::integral_constant<bool,V>;
25870 template<
unsigned char V>
25871 using UnsignedChar = tml::integral_constant<unsigned char,V>;
25872 template<
unsigned int V>
25873 using UnsignedInt = tml::integral_constant<unsigned int,V>;
25875 template<
long int V>
25876 using LongInt = tml::integral_constant<long int,V>;
25877 template<
long long int V>
25878 using LongLongInt = tml::integral_constant<long long int,V>;
25880 template<
unsigned long int V>
25881 using UnsignedLongInt = tml::integral_constant<unsigned long int,V>;
25882 template<
unsigned long long int V>
25883 using UnsignedLongLongInt = tml::integral_constant<unsigned long long int,V>;
25891 using character = tml::integral_constant<char,V>;
25893 using integer = tml::integral_constant<int,V>;
25895 using boolean = tml::integral_constant<bool,V>;
25897 template<
unsigned char V>
25898 using unsigned_character = tml::integral_constant<unsigned char,V>;
25899 template<
unsigned int V>
25900 using unsigned_integer = tml::integral_constant<unsigned int,V>;
25902 template<
long int V>
25903 using long_integer = tml::integral_constant<long int,V>;
25904 template<
long long int V>
25905 using long_long_integer = tml::integral_constant<long long int,V>;
25907 template<
unsigned long int V>
25908 using unsigned_long_integer = tml::integral_constant<unsigned long int,V>;
25909 template<
unsigned long long int V>
25910 using unsigned_long_long_integer = tml::integral_constant<unsigned long long int,V>;
25912 template<
unsigned char V>
25913 using ucharacter = tml::integral_constant<unsigned char,V>;
25914 template<
unsigned int V>
25915 using uinteger = tml::integral_constant<unsigned int,V>;
25917 template<
long int V>
25918 using linteger = tml::integral_constant<long int,V>;
25919 template<
long long int V>
25920 using llinteger = tml::integral_constant<long long int,V>;
25922 template<
unsigned long int V>
25923 using ulinteger = tml::integral_constant<unsigned long int,V>;
25924 template<
unsigned long long int V>
25925 using ullinteger = tml::integral_constant<unsigned long long int,V>;
25928 using namespace tml::basic_types_declarations;
25931 using namespace tml::basic_types_declarations;
25938 template<
typename TLHS , TLHS VLHS ,
25939 typename TRHS , TRHS VRHS>
25940 struct add<tml::integral_constant<TLHS,VLHS> , tml::integral_constant<TRHS,VRHS>> :
25941 public tml::function<tml::integral_constant<decltype(VLHS + VRHS),VLHS + VRHS>>
25944 template<
typename TLHS , TLHS VLHS ,
25945 typename TRHS , TRHS VRHS>
25946 struct sub<tml::integral_constant<TLHS,VLHS> , tml::integral_constant<TRHS,VRHS>> :
25947 public tml::function<tml::integral_constant<decltype(VLHS - VRHS),VLHS - VRHS>>
25950 template<
typename TLHS , TLHS VLHS ,
25951 typename TRHS , TRHS VRHS>
25952 struct mul<tml::integral_constant<TLHS,VLHS> , tml::integral_constant<TRHS,VRHS>> :
25953 public tml::function<tml::integral_constant<decltype(VLHS * VRHS),VLHS * VRHS>>
25956 template<
typename TLHS , TLHS VLHS ,
25957 typename TRHS , TRHS VRHS>
25958 struct div<tml::integral_constant<TLHS,VLHS> , tml::integral_constant<TRHS,VRHS>> :
25959 public tml::function<tml::integral_constant<decltype(VLHS / VRHS),VLHS / VRHS>>
25963 template<
bool VLHS ,
25965 struct logical_or<tml::boolean<VLHS> , tml::boolean<VRHS>> :
25969 template<
bool VLHS ,
25971 struct logical_and<tml::boolean<VLHS> , tml::boolean<VRHS>> :
25976 struct logical_not<tml::boolean<OP>> :
25980 template<
typename TLHS , TLHS VLHS ,
25981 typename TRHS , TRHS VRHS>
25982 struct equal<tml::integral_constant<TLHS,VLHS> , tml::integral_constant<TRHS,VRHS>> :
25986 template<
typename TLHS , TLHS VLHS ,
25987 typename TRHS , TRHS VRHS>
25988 struct less_than<tml::integral_constant<TLHS,VLHS> , tml::integral_constant<TRHS,VRHS>> :
25992 # 25 "./list.hpp" 2
25995 # 1 "./iterator.hpp" 1
25996 # 39 "./iterator.hpp"
26001 # 62 "./iterator.hpp"
26002 struct sequence_end_element{};
26007 struct forward_iterator_tag{};
26008 struct reverse_iterator_tag{};
26014 template<typename CATEGORY>
26015 struct iterator_traits
26017 using iterator_category = CATEGORY;
26027 template<typename I>
26033 template<typename I>
26039 template<typename SEQ>
26045 template<typename SEQ>
26051 template<typename SEQ>
26057 template<typename SEQ>
26066 template<typename I>
26067 using deref = tml::iterator::impl::deref<I>;
26069 template<typename I>
26070 using next = tml::iterator::impl::next<I>;
26072 template<typename SEQ>
26073 using begin = tml::iterator::impl::begin<SEQ>;
26075 template<typename SEQ>
26076 using end = tml::iterator::impl::end<SEQ>;
26078 template<typename SEQ>
26079 using rbegin = tml::iterator::impl::rbegin<SEQ>;
26081 template<typename SEQ>
26082 using rend = tml::iterator::impl::rend<SEQ>;
26088 template<typename I>
26089 using deref = typename tml::iterator::impl::deref<I>::result;
26094 template<typename I>
26095 using next = typename tml::iterator::impl::next<I>::result;
26100 template<typename SEQ>
26101 using begin = typename tml::iterator::impl::begin<SEQ>::result;
26106 template<typename SEQ>
26107 using end = typename tml::iterator::impl::end<SEQ>::result;
26112 template<typename SEQ>
26113 using rbegin = typename tml::iterator::impl::rbegin<SEQ>::result;
26118 template<typename SEQ>
26119 using rend = typename tml::iterator::impl::rend<SEQ>::result;
26122 # 28 "./list.hpp" 2
26124 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstddef" 1 3
26125 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstddef" 3
26128 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3
26129 # 46 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstddef" 2 3
26135 using ::max_align_t;
26137 # 30 "./list.hpp" 2
26140 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/algorithm" 1 3
26141 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/algorithm" 3
26143 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/utility" 1 3
26144 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/utility" 3
26145 # 69 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/utility" 3
26146 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_relops.h" 1 3
26147 # 67 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_relops.h" 3
26148 namespace std __attribute__ ((__visibility__ ("default")))
26152 # 85 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_relops.h" 3
26153 template <class _Tp>
26155 operator!=(const _Tp& __x, const _Tp& __y)
26156 { return !(__x == __y); }
26157 # 98 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_relops.h" 3
26158 template <class _Tp>
26160 operator>(const _Tp& __x, const _Tp& __y)
26161 {
return __y < __x; }
26162 # 111 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_relops.h" 3
26163 template <
class _Tp>
26165 operator<=(
const _Tp& __x,
const _Tp& __y)
26166 {
return !(__y < __x); }
26167 # 124 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_relops.h" 3
26168 template <
class _Tp>
26170 operator>=(
const _Tp& __x,
const _Tp& __y)
26171 {
return !(__x < __y); }
26177 # 70 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/utility" 2 3
26184 namespace std __attribute__ ((__visibility__ ("default")))
26188 template<
class _Tp>
26191 template<std::
size_t _Int,
class _Tp>
26192 class tuple_element;
26195 template<
class _Tp1,
class _Tp2>
26196 struct tuple_size<std::pair<_Tp1, _Tp2>>
26197 :
public integral_constant<std::size_t, 2> { };
26199 template<
class _Tp1,
class _Tp2>
26200 struct tuple_element<0, std::pair<_Tp1, _Tp2>>
26201 {
typedef _Tp1 type; };
26203 template<
class _Tp1,
class _Tp2>
26204 struct tuple_element<1, std::pair<_Tp1, _Tp2>>
26205 {
typedef _Tp2 type; };
26207 template<std::
size_t _Int>
26211 struct __pair_get<0>
26213 template<
typename _Tp1,
typename _Tp2>
26214 static constexpr _Tp1&
26215 __get(std::pair<_Tp1, _Tp2>& __pair) noexcept
26216 {
return __pair.first; }
26218 template<
typename _Tp1,
typename _Tp2>
26219 static constexpr _Tp1&&
26220 __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept
26221 {
return std::forward<_Tp1>(__pair.first); }
26223 template<
typename _Tp1,
typename _Tp2>
26224 static constexpr
const _Tp1&
26225 __const_get(
const std::pair<_Tp1, _Tp2>& __pair) noexcept
26226 {
return __pair.first; }
26230 struct __pair_get<1>
26232 template<
typename _Tp1,
typename _Tp2>
26233 static constexpr _Tp2&
26234 __get(std::pair<_Tp1, _Tp2>& __pair) noexcept
26235 {
return __pair.second; }
26237 template<
typename _Tp1,
typename _Tp2>
26238 static constexpr _Tp2&&
26239 __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept
26240 {
return std::forward<_Tp2>(__pair.second); }
26242 template<
typename _Tp1,
typename _Tp2>
26243 static constexpr
const _Tp2&
26244 __const_get(
const std::pair<_Tp1, _Tp2>& __pair) noexcept
26245 {
return __pair.second; }
26248 template<std::
size_t _Int,
class _Tp1,
class _Tp2>
26249 constexpr
typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&
26250 get(std::pair<_Tp1, _Tp2>& __in) noexcept
26251 {
return __pair_get<_Int>::__get(__in); }
26253 template<std::
size_t _Int,
class _Tp1,
class _Tp2>
26254 constexpr
typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&&
26255 get(std::pair<_Tp1, _Tp2>&& __in) noexcept
26256 {
return __pair_get<_Int>::__move_get(std::move(__in)); }
26258 template<std::
size_t _Int,
class _Tp1,
class _Tp2>
26259 constexpr
const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&
26260 get(
const std::pair<_Tp1, _Tp2>& __in) noexcept
26261 {
return __pair_get<_Int>::__const_get(__in); }
26262 # 199 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/utility" 3
26263 template<
size_t... _Indexes>
26264 struct _Index_tuple
26266 typedef _Index_tuple<_Indexes...,
sizeof...(_Indexes)> __next;
26270 template<
size_t _Num>
26271 struct _Build_index_tuple
26273 typedef typename _Build_index_tuple<_Num - 1>::__type::__next __type;
26277 struct _Build_index_tuple<0>
26279 typedef _Index_tuple<> __type;
26281 # 259 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/utility" 3
26283 # 61 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/algorithm" 2 3
26285 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algo.h" 1 3
26286 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algo.h" 3
26287 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 1 3
26288 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
26289 # 60 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algo.h" 2 3
26290 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/algorithmfwd.h" 1 3
26291 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/algorithmfwd.h" 3
26300 namespace std __attribute__ ((__visibility__ ("default")))
26302 # 194 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/algorithmfwd.h" 3
26303 template<
typename _IIter,
typename _Predicate>
26305 all_of(_IIter, _IIter, _Predicate);
26307 template<
typename _IIter,
typename _Predicate>
26309 any_of(_IIter, _IIter, _Predicate);
26312 template<
typename _FIter,
typename _Tp>
26314 binary_search(_FIter, _FIter,
const _Tp&);
26316 template<
typename _FIter,
typename _Tp,
typename _Compare>
26318 binary_search(_FIter, _FIter,
const _Tp&, _Compare);
26320 template<
typename _IIter,
typename _OIter>
26322 copy(_IIter, _IIter, _OIter);
26324 template<
typename _BIter1,
typename _BIter2>
26326 copy_backward(_BIter1, _BIter1, _BIter2);
26329 template<
typename _IIter,
typename _OIter,
typename _Predicate>
26331 copy_if(_IIter, _IIter, _OIter, _Predicate);
26333 template<
typename _IIter,
typename _Size,
typename _OIter>
26335 copy_n(_IIter, _Size, _OIter);
26341 template<
typename _FIter,
typename _Tp>
26342 pair<_FIter, _FIter>
26343 equal_range(_FIter, _FIter,
const _Tp&);
26345 template<
typename _FIter,
typename _Tp,
typename _Compare>
26346 pair<_FIter, _FIter>
26347 equal_range(_FIter, _FIter,
const _Tp&, _Compare);
26349 template<
typename _FIter,
typename _Tp>
26351 fill(_FIter, _FIter,
const _Tp&);
26353 template<
typename _OIter,
typename _Size,
typename _Tp>
26355 fill_n(_OIter, _Size,
const _Tp&);
26359 template<
typename _FIter1,
typename _FIter2>
26361 find_end(_FIter1, _FIter1, _FIter2, _FIter2);
26363 template<
typename _FIter1,
typename _FIter2,
typename _BinaryPredicate>
26365 find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate);
26371 template<
typename _IIter,
typename _Predicate>
26373 find_if_not(_IIter, _IIter, _Predicate);
26380 template<
typename _IIter1,
typename _IIter2>
26382 includes(_IIter1, _IIter1, _IIter2, _IIter2);
26384 template<
typename _IIter1,
typename _IIter2,
typename _Compare>
26386 includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare);
26388 template<
typename _BIter>
26390 inplace_merge(_BIter, _BIter, _BIter);
26392 template<
typename _BIter,
typename _Compare>
26394 inplace_merge(_BIter, _BIter, _BIter, _Compare);
26397 template<
typename _RAIter>
26399 is_heap(_RAIter, _RAIter);
26401 template<
typename _RAIter,
typename _Compare>
26403 is_heap(_RAIter, _RAIter, _Compare);
26405 template<
typename _RAIter>
26407 is_heap_until(_RAIter, _RAIter);
26409 template<
typename _RAIter,
typename _Compare>
26411 is_heap_until(_RAIter, _RAIter, _Compare);
26413 template<
typename _IIter,
typename _Predicate>
26415 is_partitioned(_IIter, _IIter, _Predicate);
26417 template<
typename _FIter1,
typename _FIter2>
26419 is_permutation(_FIter1, _FIter1, _FIter2);
26421 template<
typename _FIter1,
typename _FIter2,
26422 typename _BinaryPredicate>
26424 is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate);
26426 template<
typename _FIter>
26428 is_sorted(_FIter, _FIter);
26430 template<
typename _FIter,
typename _Compare>
26432 is_sorted(_FIter, _FIter, _Compare);
26434 template<
typename _FIter>
26436 is_sorted_until(_FIter, _FIter);
26438 template<
typename _FIter,
typename _Compare>
26440 is_sorted_until(_FIter, _FIter, _Compare);
26443 template<
typename _FIter1,
typename _FIter2>
26445 iter_swap(_FIter1, _FIter2);
26447 template<
typename _FIter,
typename _Tp>
26449 lower_bound(_FIter, _FIter,
const _Tp&);
26451 template<
typename _FIter,
typename _Tp,
typename _Compare>
26453 lower_bound(_FIter, _FIter,
const _Tp&, _Compare);
26455 template<
typename _RAIter>
26457 make_heap(_RAIter, _RAIter);
26459 template<
typename _RAIter,
typename _Compare>
26461 make_heap(_RAIter, _RAIter, _Compare);
26463 template<
typename _Tp>
26465 max(
const _Tp&,
const _Tp&);
26467 template<
typename _Tp,
typename _Compare>
26469 max(
const _Tp&,
const _Tp&, _Compare);
26474 template<
typename _Tp>
26476 min(
const _Tp&,
const _Tp&);
26478 template<
typename _Tp,
typename _Compare>
26480 min(
const _Tp&,
const _Tp&, _Compare);
26485 template<
typename _Tp>
26486 pair<const _Tp&, const _Tp&>
26487 minmax(
const _Tp&,
const _Tp&);
26489 template<
typename _Tp,
typename _Compare>
26490 pair<const _Tp&, const _Tp&>
26491 minmax(
const _Tp&,
const _Tp&, _Compare);
26493 template<
typename _FIter>
26494 pair<_FIter, _FIter>
26495 minmax_element(_FIter, _FIter);
26497 template<
typename _FIter,
typename _Compare>
26498 pair<_FIter, _FIter>
26499 minmax_element(_FIter, _FIter, _Compare);
26501 template<
typename _Tp>
26503 min(initializer_list<_Tp>);
26505 template<
typename _Tp,
typename _Compare>
26507 min(initializer_list<_Tp>, _Compare);
26509 template<
typename _Tp>
26511 max(initializer_list<_Tp>);
26513 template<
typename _Tp,
typename _Compare>
26515 max(initializer_list<_Tp>, _Compare);
26517 template<
typename _Tp>
26519 minmax(initializer_list<_Tp>);
26521 template<
typename _Tp,
typename _Compare>
26523 minmax(initializer_list<_Tp>, _Compare);
26528 template<
typename _BIter>
26530 next_permutation(_BIter, _BIter);
26532 template<
typename _BIter,
typename _Compare>
26534 next_permutation(_BIter, _BIter, _Compare);
26537 template<
typename _IIter,
typename _Predicate>
26539 none_of(_IIter, _IIter, _Predicate);
26545 template<
typename _IIter,
typename _RAIter>
26547 partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter);
26549 template<
typename _IIter,
typename _RAIter,
typename _Compare>
26551 partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare);
26556 template<
typename _IIter,
typename _OIter1,
26557 typename _OIter2,
typename _Predicate>
26558 pair<_OIter1, _OIter2>
26559 partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate);
26561 template<
typename _FIter,
typename _Predicate>
26563 partition_point(_FIter, _FIter, _Predicate);
26566 template<
typename _RAIter>
26568 pop_heap(_RAIter, _RAIter);
26570 template<
typename _RAIter,
typename _Compare>
26572 pop_heap(_RAIter, _RAIter, _Compare);
26574 template<
typename _BIter>
26576 prev_permutation(_BIter, _BIter);
26578 template<
typename _BIter,
typename _Compare>
26580 prev_permutation(_BIter, _BIter, _Compare);
26582 template<
typename _RAIter>
26584 push_heap(_RAIter, _RAIter);
26586 template<
typename _RAIter,
typename _Compare>
26588 push_heap(_RAIter, _RAIter, _Compare);
26592 template<
typename _FIter,
typename _Tp>
26594 remove(_FIter, _FIter,
const _Tp&);
26596 template<
typename _FIter,
typename _Predicate>
26598 remove_if(_FIter, _FIter, _Predicate);
26600 template<
typename _IIter,
typename _OIter,
typename _Tp>
26602 remove_copy(_IIter, _IIter, _OIter,
const _Tp&);
26604 template<
typename _IIter,
typename _OIter,
typename _Predicate>
26606 remove_copy_if(_IIter, _IIter, _OIter, _Predicate);
26610 template<
typename _IIter,
typename _OIter,
typename _Tp>
26612 replace_copy(_IIter, _IIter, _OIter,
const _Tp&,
const _Tp&);
26614 template<
typename _Iter,
typename _OIter,
typename _Predicate,
typename _Tp>
26616 replace_copy_if(_Iter, _Iter, _OIter, _Predicate,
const _Tp&);
26620 template<
typename _BIter>
26622 reverse(_BIter, _BIter);
26624 template<
typename _BIter,
typename _OIter>
26626 reverse_copy(_BIter, _BIter, _OIter);
26628 template<
typename _FIter>
26630 rotate(_FIter, _FIter, _FIter);
26632 template<
typename _FIter,
typename _OIter>
26634 rotate_copy(_FIter, _FIter, _FIter, _OIter);
26635 # 535 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/algorithmfwd.h" 3
26636 template<
typename _RAIter,
typename _UGenerator>
26638 shuffle(_RAIter, _RAIter, _UGenerator&&);
26641 template<
typename _RAIter>
26643 sort_heap(_RAIter, _RAIter);
26645 template<
typename _RAIter,
typename _Compare>
26647 sort_heap(_RAIter, _RAIter, _Compare);
26649 template<
typename _BIter,
typename _Predicate>
26651 stable_partition(_BIter, _BIter, _Predicate);
26653 template<
typename _Tp>
26657 noexcept(__and_<is_nothrow_move_constructible<_Tp>,
26658 is_nothrow_move_assignable<_Tp>>::value)
26662 template<typename _Tp,
size_t _Nm>
26664 swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
26666 noexcept(noexcept(swap(*__a, *__b)))
26670 template<typename _FIter1, typename _FIter2>
26672 swap_ranges(_FIter1, _FIter1, _FIter2);
26676 template<typename _FIter>
26678 unique(_FIter, _FIter);
26680 template<typename _FIter, typename _BinaryPredicate>
26682 unique(_FIter, _FIter, _BinaryPredicate);
26686 template<typename _FIter, typename _Tp>
26688 upper_bound(_FIter, _FIter, const _Tp&);
26690 template<typename _FIter, typename _Tp, typename _Compare>
26692 upper_bound(_FIter, _FIter, const _Tp&, _Compare);
26698 template<typename _FIter>
26700 adjacent_find(_FIter, _FIter);
26702 template<typename _FIter, typename _BinaryPredicate>
26704 adjacent_find(_FIter, _FIter, _BinaryPredicate);
26706 template<typename _IIter, typename _Tp>
26707 typename iterator_traits<_IIter>::difference_type
26708 count(_IIter, _IIter, const _Tp&);
26710 template<typename _IIter, typename _Predicate>
26711 typename iterator_traits<_IIter>::difference_type
26712 count_if(_IIter, _IIter, _Predicate);
26714 template<typename _IIter1, typename _IIter2>
26716 equal(_IIter1, _IIter1, _IIter2);
26718 template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
26720 equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate);
26722 template<typename _IIter, typename _Tp>
26724 find(_IIter, _IIter, const _Tp&);
26726 template<typename _FIter1, typename _FIter2>
26728 find_first_of(_FIter1, _FIter1, _FIter2, _FIter2);
26730 template<typename _FIter1, typename _FIter2, typename _BinaryPredicate>
26732 find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate);
26734 template<typename _IIter, typename _Predicate>
26736 find_if(_IIter, _IIter, _Predicate);
26738 template<typename _IIter, typename _Funct>
26740 for_each(_IIter, _IIter, _Funct);
26742 template<typename _FIter, typename _Generator>
26744 generate(_FIter, _FIter, _Generator);
26746 template<typename _OIter, typename _Size, typename _Generator>
26748 generate_n(_OIter, _Size, _Generator);
26750 template<typename _IIter1, typename _IIter2>
26752 lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2);
26754 template<typename _IIter1, typename _IIter2, typename _Compare>
26756 lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare);
26758 template<typename _FIter>
26760 max_element(_FIter, _FIter);
26762 template<typename _FIter, typename _Compare>
26764 max_element(_FIter, _FIter, _Compare);
26766 template<typename _IIter1, typename _IIter2, typename _OIter>
26768 merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
26770 template<typename _IIter1, typename _IIter2, typename _OIter,
26773 merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
26775 template<typename _FIter>
26777 min_element(_FIter, _FIter);
26779 template<typename _FIter, typename _Compare>
26781 min_element(_FIter, _FIter, _Compare);
26783 template<typename _IIter1, typename _IIter2>
26784 pair<_IIter1, _IIter2>
26785 mismatch(_IIter1, _IIter1, _IIter2);
26787 template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
26788 pair<_IIter1, _IIter2>
26789 mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate);
26791 template<typename _RAIter>
26793 nth_element(_RAIter, _RAIter, _RAIter);
26795 template<typename _RAIter, typename _Compare>
26797 nth_element(_RAIter, _RAIter, _RAIter, _Compare);
26799 template<typename _RAIter>
26801 partial_sort(_RAIter, _RAIter, _RAIter);
26803 template<typename _RAIter, typename _Compare>
26805 partial_sort(_RAIter, _RAIter, _RAIter, _Compare);
26807 template<typename _BIter, typename _Predicate>
26809 partition(_BIter, _BIter, _Predicate);
26811 template<typename _RAIter>
26813 random_shuffle(_RAIter, _RAIter);
26815 template<typename _RAIter, typename _Generator>
26817 random_shuffle(_RAIter, _RAIter,
26824 template<typename _FIter, typename _Tp>
26826 replace(_FIter, _FIter, const _Tp&, const _Tp&);
26828 template<typename _FIter, typename _Predicate, typename _Tp>
26830 replace_if(_FIter, _FIter, _Predicate, const _Tp&);
26832 template<typename _FIter1, typename _FIter2>
26834 search(_FIter1, _FIter1, _FIter2, _FIter2);
26836 template<typename _FIter1, typename _FIter2, typename _BinaryPredicate>
26838 search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate);
26840 template<typename _FIter, typename _Size, typename _Tp>
26842 search_n(_FIter, _FIter, _Size, const _Tp&);
26844 template<typename _FIter, typename _Size, typename _Tp,
26845 typename _BinaryPredicate>
26847 search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate);
26849 template<typename _IIter1, typename _IIter2, typename _OIter>
26851 set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
26853 template<typename _IIter1, typename _IIter2, typename _OIter,
26856 set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
26858 template<typename _IIter1, typename _IIter2, typename _OIter>
26860 set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
26862 template<typename _IIter1, typename _IIter2, typename _OIter,
26865 set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
26867 template<typename _IIter1, typename _IIter2, typename _OIter>
26869 set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
26871 template<typename _IIter1, typename _IIter2, typename _OIter,
26874 set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2,
26877 template<typename _IIter1, typename _IIter2, typename _OIter>
26879 set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
26881 template<typename _IIter1, typename _IIter2, typename _OIter,
26884 set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
26886 template<typename _RAIter>
26888 sort(_RAIter, _RAIter);
26890 template<typename _RAIter, typename _Compare>
26892 sort(_RAIter, _RAIter, _Compare);
26894 template<typename _RAIter>
26896 stable_sort(_RAIter, _RAIter);
26898 template<typename _RAIter, typename _Compare>
26900 stable_sort(_RAIter, _RAIter, _Compare);
26902 template<typename _IIter, typename _OIter, typename _UnaryOperation>
26904 transform(_IIter, _IIter, _OIter, _UnaryOperation);
26906 template<typename _IIter1, typename _IIter2, typename _OIter,
26907 typename _BinaryOperation>
26909 transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation);
26911 template<typename _IIter, typename _OIter>
26913 unique_copy(_IIter, _IIter, _OIter);
26915 template<typename _IIter, typename _OIter, typename _BinaryPredicate>
26917 unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate);
26921 # 61 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algo.h" 2 3
26922 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 1 3
26923 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
26924 namespace std __attribute__ ((__visibility__ ("default")))
26933 template<
typename _RandomAccessIterator,
typename _Distance,
26936 __is_heap_until(_RandomAccessIterator __first, _Distance __n,
26939 _Distance __parent = 0;
26940 for (_Distance __child = 1; __child < __n; ++__child)
26942 if (__comp(__first + __parent, __first + __child))
26944 if ((__child & 1) == 0)
26952 template<
typename _RandomAccessIterator,
typename _Distance>
26954 __is_heap(_RandomAccessIterator __first, _Distance __n)
26956 return std::__is_heap_until(__first, __n,
26957 __gnu_cxx::__ops::__iter_less_iter()) == __n;
26960 template<
typename _RandomAccessIterator,
typename _Compare,
26961 typename _Distance>
26963 __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n)
26965 return std::__is_heap_until(__first, __n,
26966 __gnu_cxx::__ops::__iter_comp_iter(__comp)) == __n;
26969 template<
typename _RandomAccessIterator>
26971 __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
26972 {
return std::__is_heap(__first, std::distance(__first, __last)); }
26974 template<
typename _RandomAccessIterator,
typename _Compare>
26976 __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
26978 {
return std::__is_heap(__first, __comp, std::distance(__first, __last)); }
26983 template<
typename _RandomAccessIterator,
typename _Distance,
typename _Tp,
26986 __push_heap(_RandomAccessIterator __first,
26987 _Distance __holeIndex, _Distance __topIndex, _Tp __value,
26990 _Distance __parent = (__holeIndex - 1) / 2;
26991 while (__holeIndex > __topIndex && __comp(__first + __parent, __value))
26993 *(__first + __holeIndex) = std::move(*(__first + __parent));
26994 __holeIndex = __parent;
26995 __parent = (__holeIndex - 1) / 2;
26997 *(__first + __holeIndex) = std::move(__value);
26999 # 148 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27000 template<
typename _RandomAccessIterator>
27002 push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
27004 typedef typename iterator_traits<_RandomAccessIterator>::value_type
27006 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
27016 _ValueType __value = std::move(*(__last - 1));
27017 std::__push_heap(__first, _DistanceType((__last - __first) - 1),
27018 _DistanceType(0), std::move(__value),
27019 __gnu_cxx::__ops::__iter_less_val());
27021 # 182 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27022 template<
typename _RandomAccessIterator,
typename _Compare>
27024 push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
27027 typedef typename iterator_traits<_RandomAccessIterator>::value_type
27029 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
27038 _ValueType __value = std::move(*(__last - 1));
27039 std::__push_heap(__first, _DistanceType((__last - __first) - 1),
27040 _DistanceType(0), std::move(__value),
27041 __gnu_cxx::__ops::__iter_comp_val(__comp));
27044 template<
typename _RandomAccessIterator,
typename _Distance,
27045 typename _Tp,
typename _Compare>
27047 __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
27048 _Distance __len, _Tp __value, _Compare __comp)
27050 const _Distance __topIndex = __holeIndex;
27051 _Distance __secondChild = __holeIndex;
27052 while (__secondChild < (__len - 1) / 2)
27054 __secondChild = 2 * (__secondChild + 1);
27055 if (__comp(__first + __secondChild,
27056 __first + (__secondChild - 1)))
27058 *(__first + __holeIndex) = std::move(*(__first + __secondChild));
27059 __holeIndex = __secondChild;
27061 if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2)
27063 __secondChild = 2 * (__secondChild + 1);
27064 *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1)));
27066 __holeIndex = __secondChild - 1;
27068 std::__push_heap(__first, __holeIndex, __topIndex,
27069 std::move(__value),
27070 __gnu_cxx::__ops::__iter_comp_val(__comp));
27073 template<
typename _RandomAccessIterator,
typename _Compare>
27075 __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
27076 _RandomAccessIterator __result, _Compare __comp)
27078 typedef typename iterator_traits<_RandomAccessIterator>::value_type
27080 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
27083 _ValueType __value = std::move(*__result);
27084 *__result = std::move(*__first);
27085 std::__adjust_heap(__first, _DistanceType(0),
27086 _DistanceType(__last - __first),
27087 std::move(__value), __comp);
27089 # 261 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27090 template<
typename _RandomAccessIterator>
27092 pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
27094 typedef typename iterator_traits<_RandomAccessIterator>::value_type
27105 if (__last - __first > 1)
27108 std::__pop_heap(__first, __last, __last,
27109 __gnu_cxx::__ops::__iter_less_iter());
27112 # 295 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27113 template<
typename _RandomAccessIterator,
typename _Compare>
27115 pop_heap(_RandomAccessIterator __first,
27116 _RandomAccessIterator __last, _Compare __comp)
27125 if (__last - __first > 1)
27128 std::__pop_heap(__first, __last, __last,
27129 __gnu_cxx::__ops::__iter_comp_iter(__comp));
27133 template<
typename _RandomAccessIterator,
typename _Compare>
27135 __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
27138 typedef typename iterator_traits<_RandomAccessIterator>::value_type
27140 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
27143 if (__last - __first < 2)
27146 const _DistanceType __len = __last - __first;
27147 _DistanceType __parent = (__len - 2) / 2;
27150 _ValueType __value = std::move(*(__first + __parent));
27151 std::__adjust_heap(__first, __parent, __len, std::move(__value),
27158 # 349 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27159 template<
typename _RandomAccessIterator>
27161 make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
27170 std::__make_heap(__first, __last,
27171 __gnu_cxx::__ops::__iter_less_iter());
27173 # 374 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27174 template<
typename _RandomAccessIterator,
typename _Compare>
27176 make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
27184 std::__make_heap(__first, __last,
27185 __gnu_cxx::__ops::__iter_comp_iter(__comp));
27188 template<
typename _RandomAccessIterator,
typename _Compare>
27190 __sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
27193 while (__last - __first > 1)
27196 std::__pop_heap(__first, __last, __last, __comp);
27199 # 408 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27200 template<
typename _RandomAccessIterator>
27202 sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
27212 std::__sort_heap(__first, __last,
27213 __gnu_cxx::__ops::__iter_less_iter());
27215 # 434 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27216 template<
typename _RandomAccessIterator,
typename _Compare>
27218 sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
27227 std::__sort_heap(__first, __last,
27228 __gnu_cxx::__ops::__iter_comp_iter(__comp));
27230 # 460 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27231 template<
typename _RandomAccessIterator>
27232 inline _RandomAccessIterator
27233 is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last)
27243 std::__is_heap_until(__first, std::distance(__first, __last),
27244 __gnu_cxx::__ops::__iter_less_iter());
27246 # 487 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27247 template<
typename _RandomAccessIterator,
typename _Compare>
27248 inline _RandomAccessIterator
27249 is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last,
27258 + std::__is_heap_until(__first, std::distance(__first, __last),
27259 __gnu_cxx::__ops::__iter_comp_iter(__comp));
27261 # 509 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27262 template<
typename _RandomAccessIterator>
27264 is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
27265 {
return std::is_heap_until(__first, __last) == __last; }
27266 # 522 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27267 template<
typename _RandomAccessIterator,
typename _Compare>
27269 is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
27271 {
return std::is_heap_until(__first, __last, __comp) == __last; }
27276 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algo.h" 2 3
27277 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_tempbuf.h" 1 3
27278 # 60 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_tempbuf.h" 3
27279 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_construct.h" 1 3
27280 # 61 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_construct.h" 3
27281 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/alloc_traits.h" 1 3
27282 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/alloc_traits.h" 3
27286 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 1 3
27287 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27288 namespace std __attribute__ ((__visibility__ ("default")))
27292 template<
typename _Alloc,
typename _Tp>
27293 class __alloctr_rebind_helper
27295 template<
typename _Alloc2,
typename _Tp2>
27296 static constexpr true_type
27297 _S_chk(
typename _Alloc2::template rebind<_Tp2>::other*);
27299 template<
typename,
typename>
27300 static constexpr false_type
27304 using __type = decltype(_S_chk<_Alloc, _Tp>(
nullptr));
27307 template<
typename _Alloc,
typename _Tp,
27308 bool = __alloctr_rebind_helper<_Alloc, _Tp>::__type::value>
27309 struct __alloctr_rebind;
27311 template<
typename _Alloc,
typename _Tp>
27312 struct __alloctr_rebind<_Alloc, _Tp, true>
27314 typedef typename _Alloc::template rebind<_Tp>::other __type;
27317 template<
template<
typename,
typename...>
class _Alloc,
typename _Tp,
27318 typename _Up,
typename... _Args>
27319 struct __alloctr_rebind<_Alloc<_Up, _Args...>, _Tp, false>
27321 typedef _Alloc<_Tp, _Args...> __type;
27328 template<
typename _Alloc>
27329 struct allocator_traits
27332 typedef _Alloc allocator_type;
27334 typedef typename _Alloc::value_type value_type;
27335 # 95 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27336 private:
template<
typename _Tp>
static typename _Tp::pointer _S_pointer_helper(_Tp*);
static value_type* _S_pointer_helper(...);
typedef decltype(_S_pointer_helper((_Alloc*)0)) __pointer; public:
27343 typedef __pointer pointer;
27345 private: template<typename _Tp> static typename _Tp::const_pointer _S_const_pointer_helper(_Tp*); static typename pointer_traits<pointer>::template rebind<const value_type> _S_const_pointer_helper(...); typedef decltype(_S_const_pointer_helper((_Alloc*)0)) __const_pointer; public:
27346 # 113 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27347 typedef __const_pointer const_pointer;
27349 private:
template<
typename _Tp>
static typename _Tp::void_pointer _S_void_pointer_helper(_Tp*);
static typename pointer_traits<pointer>::template rebind<void> _S_void_pointer_helper(...);
typedef decltype(_S_void_pointer_helper((_Alloc*)0)) __void_pointer; public:
27350 # 124 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27351 typedef __void_pointer void_pointer;
27353 private:
template<
typename _Tp>
static typename _Tp::const_void_pointer _S_const_void_pointer_helper(_Tp*);
static typename pointer_traits<pointer>::template rebind<const void> _S_const_void_pointer_helper(...);
typedef decltype(_S_const_void_pointer_helper((_Alloc*)0)) __const_void_pointer; public:
27354 # 135 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27355 typedef __const_void_pointer const_void_pointer;
27357 private:
template<
typename _Tp>
static typename _Tp::difference_type _S_difference_type_helper(_Tp*);
static typename pointer_traits<pointer>::difference_type _S_difference_type_helper(...);
typedef decltype(_S_difference_type_helper((_Alloc*)0)) __difference_type; public:
27358 # 146 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27359 typedef __difference_type difference_type;
27361 private:
template<
typename _Tp>
static typename _Tp::size_type _S_size_type_helper(_Tp*);
static typename make_unsigned<difference_type>::type _S_size_type_helper(...);
typedef decltype(_S_size_type_helper((_Alloc*)0)) __size_type; public:
27362 # 157 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27363 typedef __size_type size_type;
27365 private:
template<
typename _Tp>
static typename _Tp::propagate_on_container_copy_assignment _S_propagate_on_container_copy_assignment_helper(_Tp*);
static false_type _S_propagate_on_container_copy_assignment_helper(...);
typedef decltype(_S_propagate_on_container_copy_assignment_helper((_Alloc*)0)) __propagate_on_container_copy_assignment; public:
27366 # 168 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27367 typedef __propagate_on_container_copy_assignment
27368 propagate_on_container_copy_assignment;
27370 private:
template<
typename _Tp>
static typename _Tp::propagate_on_container_move_assignment _S_propagate_on_container_move_assignment_helper(_Tp*);
static false_type _S_propagate_on_container_move_assignment_helper(...);
typedef decltype(_S_propagate_on_container_move_assignment_helper((_Alloc*)0)) __propagate_on_container_move_assignment; public:
27371 # 180 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27372 typedef __propagate_on_container_move_assignment
27373 propagate_on_container_move_assignment;
27375 private:
template<
typename _Tp>
static typename _Tp::propagate_on_container_swap _S_propagate_on_container_swap_helper(_Tp*);
static false_type _S_propagate_on_container_swap_helper(...);
typedef decltype(_S_propagate_on_container_swap_helper((_Alloc*)0)) __propagate_on_container_swap; public:
27376 # 192 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27377 typedef __propagate_on_container_swap propagate_on_container_swap;
27381 template<
typename _Tp>
27382 using rebind_alloc =
typename __alloctr_rebind<_Alloc, _Tp>::__type;
27383 template<
typename _Tp>
27384 using rebind_traits = allocator_traits<rebind_alloc<_Tp>>;
27387 template<
typename _Alloc2>
27388 struct __allocate_helper
27390 template<
typename _Alloc3,
27391 typename = decltype(std::declval<_Alloc3*>()->allocate(
27392 std::declval<size_type>(),
27393 std::declval<const_void_pointer>()))>
27394 static true_type __test(
int);
27397 static false_type __test(...);
27399 using type = decltype(__test<_Alloc>(0));
27402 template<
typename _Alloc2>
27403 using __has_allocate =
typename __allocate_helper<_Alloc2>::type;
27405 template<
typename _Alloc2,
27406 typename = _Require<__has_allocate<_Alloc2>>>
27408 _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint)
27409 {
return __a.allocate(__n, __hint); }
27411 template<
typename _Alloc2,
typename _UnusedHint,
27412 typename = _Require<__not_<__has_allocate<_Alloc2>>>>
27414 _S_allocate(_Alloc2& __a, size_type __n, _UnusedHint)
27415 {
return __a.allocate(__n); }
27417 template<
typename _Tp,
typename... _Args>
27418 struct __construct_helper
27420 template<
typename _Alloc2,
27421 typename = decltype(std::declval<_Alloc2*>()->construct(
27422 std::declval<_Tp*>(), std::declval<_Args>()...))>
27423 static true_type __test(
int);
27426 static false_type __test(...);
27428 using type = decltype(__test<_Alloc>(0));
27431 template<
typename _Tp,
typename... _Args>
27432 using __has_construct
27433 =
typename __construct_helper<_Tp, _Args...>::type;
27435 template<
typename _Tp,
typename... _Args>
27436 static _Require<__has_construct<_Tp, _Args...>>
27437 _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args)
27438 { __a.construct(__p, std::forward<_Args>(__args)...); }
27440 template<
typename _Tp,
typename... _Args>
27442 _Require<__and_<__not_<__has_construct<_Tp, _Args...>>,
27443 is_constructible<_Tp, _Args...>>>
27444 _S_construct(_Alloc&, _Tp* __p, _Args&&... __args)
27445 { ::new((
void*)__p) _Tp(std::forward<_Args>(__args)...); }
27447 template<typename _Tp>
27448 struct __destroy_helper
27450 template<
typename _Alloc2,
27451 typename = decltype(std::declval<_Alloc2*>()->destroy(
27452 std::declval<_Tp*>()))>
27453 static true_type __test(
int);
27456 static false_type __test(...);
27458 using type = decltype(__test<_Alloc>(0));
27461 template<
typename _Tp>
27462 using __has_destroy =
typename __destroy_helper<_Tp>::type;
27464 template<
typename _Tp>
27465 static _Require<__has_destroy<_Tp>>
27466 _S_destroy(_Alloc& __a, _Tp* __p)
27467 { __a.destroy(__p); }
27469 template<
typename _Tp>
27470 static _Require<__not_<__has_destroy<_Tp>>>
27471 _S_destroy(_Alloc&, _Tp* __p)
27474 template<
typename _Alloc2>
27475 struct __maxsize_helper
27477 template<
typename _Alloc3,
27478 typename = decltype(std::declval<_Alloc3*>()->max_size())>
27479 static true_type __test(
int);
27482 static false_type __test(...);
27484 using type = decltype(__test<_Alloc2>(0));
27487 template<
typename _Alloc2>
27488 using __has_max_size =
typename __maxsize_helper<_Alloc2>::type;
27490 template<
typename _Alloc2,
27491 typename = _Require<__has_max_size<_Alloc2>>>
27493 _S_max_size(_Alloc2& __a,
int)
27494 {
return __a.max_size(); }
27496 template<
typename _Alloc2,
27497 typename = _Require<__not_<__has_max_size<_Alloc2>>>>
27499 _S_max_size(_Alloc2&, ...)
27500 {
return __gnu_cxx::__numeric_traits<size_type>::__max; }
27502 template<
typename _Alloc2>
27503 struct __select_helper
27505 template<
typename _Alloc3,
typename
27506 = decltype(std::declval<_Alloc3*>()
27507 ->select_on_container_copy_construction())>
27508 static true_type __test(
int);
27511 static false_type __test(...);
27513 using type = decltype(__test<_Alloc2>(0));
27516 template<
typename _Alloc2>
27517 using __has_soccc =
typename __select_helper<_Alloc2>::type;
27519 template<
typename _Alloc2,
27520 typename = _Require<__has_soccc<_Alloc2>>>
27522 _S_select(_Alloc2& __a,
int)
27523 {
return __a.select_on_container_copy_construction(); }
27525 template<
typename _Alloc2,
27526 typename = _Require<__not_<__has_soccc<_Alloc2>>>>
27528 _S_select(_Alloc2& __a, ...)
27532 # 355 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27534 allocate(_Alloc& __a, size_type __n)
27535 {
return __a.allocate(__n); }
27536 # 370 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27538 allocate(_Alloc& __a, size_type __n, const_void_pointer __hint)
27539 {
return _S_allocate(__a, __n, __hint); }
27540 # 382 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27541 static void deallocate(_Alloc& __a, pointer __p, size_type __n)
27542 { __a.deallocate(__p, __n); }
27543 # 396 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27544 template<
typename _Tp,
typename... _Args>
27545 static auto construct(_Alloc& __a, _Tp* __p, _Args&&... __args)
27546 -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...))
27547 { _S_construct(__a, __p, std::forward<_Args>(__args)...); }
27548 # 409 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27549 template <
class _Tp>
27550 static void destroy(_Alloc& __a, _Tp* __p)
27551 { _S_destroy(__a, __p); }
27552 # 421 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27553 static size_type max_size(
const _Alloc& __a) noexcept
27554 {
return _S_max_size(__a, 0); }
27555 # 432 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27557 select_on_container_copy_construction(
const _Alloc& __rhs)
27558 {
return _S_select(__rhs, 0); }
27561 template<
typename _Alloc>
27563 __do_alloc_on_copy(_Alloc& __one,
const _Alloc& __two, true_type)
27566 template<
typename _Alloc>
27568 __do_alloc_on_copy(_Alloc&,
const _Alloc&, false_type)
27571 template<
typename _Alloc>
27572 inline void __alloc_on_copy(_Alloc& __one,
const _Alloc& __two)
27574 typedef allocator_traits<_Alloc> __traits;
27575 typedef typename __traits::propagate_on_container_copy_assignment __pocca;
27576 __do_alloc_on_copy(__one, __two, __pocca());
27579 template<
typename _Alloc>
27580 inline _Alloc __alloc_on_copy(
const _Alloc& __a)
27582 typedef allocator_traits<_Alloc> __traits;
27583 return __traits::select_on_container_copy_construction(__a);
27586 template<
typename _Alloc>
27587 inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type)
27588 { __one = std::move(__two); }
27590 template<
typename _Alloc>
27591 inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type)
27594 template<
typename _Alloc>
27595 inline void __alloc_on_move(_Alloc& __one, _Alloc& __two)
27597 typedef allocator_traits<_Alloc> __traits;
27598 typedef typename __traits::propagate_on_container_move_assignment __pocma;
27599 __do_alloc_on_move(__one, __two, __pocma());
27602 template<
typename _Alloc>
27603 inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type)
27606 swap(__one, __two);
27609 template<
typename _Alloc>
27610 inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type)
27613 template<
typename _Alloc>
27614 inline void __alloc_on_swap(_Alloc& __one, _Alloc& __two)
27616 typedef allocator_traits<_Alloc> __traits;
27617 typedef typename __traits::propagate_on_container_swap __pocs;
27618 __do_alloc_on_swap(__one, __two, __pocs());
27621 template<
typename _Alloc>
27622 class __is_copy_insertable_impl
27624 typedef allocator_traits<_Alloc> _Traits;
27626 template<
typename _Up,
typename
27627 = decltype(_Traits::construct(std::declval<_Alloc&>(),
27628 std::declval<_Up*>(),
27629 std::declval<const _Up&>()))>
27633 template<
typename _Up>
27638 typedef decltype(_M_select<typename _Alloc::value_type>(0)) type;
27642 template<typename _Alloc>
27643 struct __is_copy_insertable
27644 : __is_copy_insertable_impl<_Alloc>::type
27648 template<
typename _Tp>
27649 struct __is_copy_insertable<allocator<_Tp>>
27650 : is_copy_constructible<_Tp>
27655 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/alloc_traits.h" 2 3
27660 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
27665 template<
typename _Alloc>
27666 struct __allocator_always_compares_equal : std::false_type { };
27668 template<
typename _Tp>
27669 struct __allocator_always_compares_equal<std::allocator<_Tp>>
27670 : std::true_type { };
27672 template<
typename,
typename>
struct array_allocator;
27674 template<
typename _Tp,
typename _Array>
27675 struct __allocator_always_compares_equal<array_allocator<_Tp, _Array>>
27676 : std::true_type { };
27678 template<
typename>
struct bitmap_allocator;
27680 template<
typename _Tp>
27681 struct __allocator_always_compares_equal<bitmap_allocator<_Tp>>
27682 : std::true_type { };
27684 template<
typename>
struct malloc_allocator;
27686 template<
typename _Tp>
27687 struct __allocator_always_compares_equal<malloc_allocator<_Tp>>
27688 : std::true_type { };
27690 template<
typename>
struct mt_allocator;
27692 template<
typename _Tp>
27693 struct __allocator_always_compares_equal<mt_allocator<_Tp>>
27694 : std::true_type { };
27696 template<
typename>
struct new_allocator;
27698 template<
typename _Tp>
27699 struct __allocator_always_compares_equal<new_allocator<_Tp>>
27700 : std::true_type { };
27702 template<
typename>
struct pool_allocator;
27704 template<
typename _Tp>
27705 struct __allocator_always_compares_equal<pool_allocator<_Tp>>
27706 : std::true_type { };
27713 template<
typename _Alloc>
27714 struct __alloc_traits
27716 : std::allocator_traits<_Alloc>
27719 typedef _Alloc allocator_type;
27721 typedef std::allocator_traits<_Alloc> _Base_type;
27722 typedef typename _Base_type::value_type value_type;
27723 typedef typename _Base_type::pointer pointer;
27724 typedef typename _Base_type::const_pointer const_pointer;
27725 typedef typename _Base_type::size_type size_type;
27726 typedef typename _Base_type::difference_type difference_type;
27728 typedef value_type& reference;
27729 typedef const value_type& const_reference;
27730 using _Base_type::allocate;
27731 using _Base_type::deallocate;
27732 using _Base_type::construct;
27733 using _Base_type::destroy;
27734 using _Base_type::max_size;
27737 template<
typename _Ptr>
27738 using __is_custom_pointer
27739 = std::__and_<std::is_same<pointer, _Ptr>,
27740 std::__not_<std::is_pointer<_Ptr>>>;
27744 template<
typename _Ptr,
typename... _Args>
27745 static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type
27746 construct(_Alloc& __a, _Ptr __p, _Args&&... __args)
27748 _Base_type::construct(__a, std::addressof(*__p),
27749 std::forward<_Args>(__args)...);
27753 template<
typename _Ptr>
27754 static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type
27755 destroy(_Alloc& __a, _Ptr __p)
27756 { _Base_type::destroy(__a, std::addressof(*__p)); }
27758 static _Alloc _S_select_on_copy(
const _Alloc& __a)
27759 {
return _Base_type::select_on_container_copy_construction(__a); }
27761 static void _S_on_swap(_Alloc& __a, _Alloc& __b)
27762 { std::__alloc_on_swap(__a, __b); }
27764 static constexpr
bool _S_propagate_on_copy_assign()
27765 {
return _Base_type::propagate_on_container_copy_assignment::value; }
27767 static constexpr
bool _S_propagate_on_move_assign()
27768 {
return _Base_type::propagate_on_container_move_assignment::value; }
27770 static constexpr
bool _S_propagate_on_swap()
27771 {
return _Base_type::propagate_on_container_swap::value; }
27773 static constexpr
bool _S_always_equal()
27774 {
return __allocator_always_compares_equal<_Alloc>::value; }
27776 static constexpr
bool _S_nothrow_move()
27777 {
return _S_propagate_on_move_assign() || _S_always_equal(); }
27779 static constexpr
bool _S_nothrow_swap()
27782 return !_S_propagate_on_swap()
27783 || noexcept(swap(std::declval<_Alloc&>(), std::declval<_Alloc&>()));
27786 template<
typename _Tp>
27788 {
typedef typename _Base_type::template rebind_alloc<_Tp> other; };
27789 # 210 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/alloc_traits.h" 3
27794 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_construct.h" 2 3
27796 namespace std __attribute__ ((__visibility__ ("default")))
27805 template<
typename _T1,
typename... _Args>
27807 _Construct(_T1* __p, _Args&&... __args)
27808 { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
27809 # 90 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_construct.h" 3
27810 template<
typename _Tp>
27812 _Destroy(_Tp* __pointer)
27813 { __pointer->~_Tp(); }
27816 struct _Destroy_aux
27818 template<
typename _ForwardIterator>
27820 __destroy(_ForwardIterator __first, _ForwardIterator __last)
27822 for (; __first != __last; ++__first)
27823 std::_Destroy(std::__addressof(*__first));
27828 struct _Destroy_aux<true>
27830 template<
typename _ForwardIterator>
27832 __destroy(_ForwardIterator, _ForwardIterator) { }
27840 template<
typename _ForwardIterator>
27842 _Destroy(_ForwardIterator __first, _ForwardIterator __last)
27844 typedef typename iterator_traits<_ForwardIterator>::value_type
27846 std::_Destroy_aux<__has_trivial_destructor(_Value_type)>::
27847 __destroy(__first, __last);
27856 template<
typename _ForwardIterator,
typename _Allocator>
27858 _Destroy(_ForwardIterator __first, _ForwardIterator __last,
27859 _Allocator& __alloc)
27861 typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
27862 for (; __first != __last; ++__first)
27863 __traits::destroy(__alloc, std::__addressof(*__first));
27866 template<
typename _ForwardIterator,
typename _Tp>
27868 _Destroy(_ForwardIterator __first, _ForwardIterator __last,
27871 _Destroy(__first, __last);
27876 # 61 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_tempbuf.h" 2 3
27878 namespace std __attribute__ ((__visibility__ ("default")))
27880 # 83 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_tempbuf.h" 3
27881 template<
typename _Tp>
27882 pair<_Tp*, ptrdiff_t>
27883 get_temporary_buffer(ptrdiff_t __len) noexcept
27885 const ptrdiff_t __max =
27886 __gnu_cxx::__numeric_traits<ptrdiff_t>::__max /
sizeof(_Tp);
27892 _Tp* __tmp =
static_cast<_Tp*
>(::operator
new(__len *
sizeof(_Tp),
27895 return std::pair<_Tp*, ptrdiff_t>(__tmp, __len);
27898 return std::pair<_Tp*, ptrdiff_t>(
static_cast<_Tp*
>(0), 0);
27900 # 110 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_tempbuf.h" 3
27901 template<
typename _Tp>
27903 return_temporary_buffer(_Tp* __p)
27904 { ::operator
delete(__p, std::nothrow); }
27912 template<
typename _ForwardIterator,
typename _Tp>
27913 class _Temporary_buffer
27919 typedef _Tp value_type;
27920 typedef value_type* pointer;
27921 typedef pointer iterator;
27922 typedef ptrdiff_t size_type;
27925 size_type _M_original_len;
27937 requested_size()
const
27938 {
return _M_original_len; }
27943 {
return _M_buffer; }
27948 {
return _M_buffer + _M_len; }
27954 _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last);
27956 ~_Temporary_buffer()
27958 std::_Destroy(_M_buffer, _M_buffer + _M_len);
27959 std::return_temporary_buffer(_M_buffer);
27964 _Temporary_buffer(
const _Temporary_buffer&);
27967 operator=(
const _Temporary_buffer&);
27972 struct __uninitialized_construct_buf_dispatch
27974 template<
typename _Po
inter,
typename _ForwardIterator>
27976 __ucr(_Pointer __first, _Pointer __last,
27977 _ForwardIterator __seed)
27979 if(__first == __last)
27982 _Pointer __cur = __first;
27985 std::_Construct(std::__addressof(*__first),
27986 std::move(*__seed));
27987 _Pointer __prev = __cur;
27989 for(; __cur != __last; ++__cur, ++__prev)
27990 std::_Construct(std::__addressof(*__cur),
27991 std::move(*__prev));
27992 *__seed = std::move(*__prev);
27996 std::_Destroy(__first, __cur);
28003 struct __uninitialized_construct_buf_dispatch<true>
28005 template<
typename _Po
inter,
typename _ForwardIterator>
28007 __ucr(_Pointer, _Pointer, _ForwardIterator) { }
28009 # 229 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_tempbuf.h" 3
28010 template<
typename _Po
inter,
typename _ForwardIterator>
28012 __uninitialized_construct_buf(_Pointer __first, _Pointer __last,
28013 _ForwardIterator __seed)
28015 typedef typename std::iterator_traits<_Pointer>::value_type
28018 std::__uninitialized_construct_buf_dispatch<
28019 __has_trivial_constructor(_ValueType)>::
28020 __ucr(__first, __last, __seed);
28023 template<
typename _ForwardIterator,
typename _Tp>
28024 _Temporary_buffer<_ForwardIterator, _Tp>::
28025 _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
28026 : _M_original_len(std::distance(__first, __last)),
28027 _M_len(0), _M_buffer(0)
28031 std::pair<pointer, size_type> __p(std::get_temporary_buffer<
28032 value_type>(_M_original_len));
28033 _M_buffer = __p.first;
28034 _M_len = __p.second;
28036 std::__uninitialized_construct_buf(_M_buffer, _M_buffer + _M_len,
28041 std::return_temporary_buffer(_M_buffer);
28050 # 63 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algo.h" 2 3
28054 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/random" 1 3
28055 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/random" 3
28061 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 1 3
28062 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 3
28067 # 1 "/usr/include/math.h" 1 3 4
28068 # 28 "/usr/include/math.h" 3 4
28074 # 1 "/usr/include/bits/huge_val.h" 1 3 4
28075 # 33 "/usr/include/math.h" 2 3 4
28077 # 1 "/usr/include/bits/huge_valf.h" 1 3 4
28078 # 35 "/usr/include/math.h" 2 3 4
28079 # 1 "/usr/include/bits/huge_vall.h" 1 3 4
28080 # 36 "/usr/include/math.h" 2 3 4
28083 # 1 "/usr/include/bits/inf.h" 1 3 4
28084 # 39 "/usr/include/math.h" 2 3 4
28087 # 1 "/usr/include/bits/nan.h" 1 3 4
28088 # 42 "/usr/include/math.h" 2 3 4
28092 # 1 "/usr/include/bits/mathdef.h" 1 3 4
28093 # 28 "/usr/include/bits/mathdef.h" 3 4
28094 typedef float float_t;
28095 typedef double double_t;
28096 # 46 "/usr/include/math.h" 2 3 4
28097 # 69 "/usr/include/math.h" 3 4
28098 # 1 "/usr/include/bits/mathcalls.h" 1 3 4
28099 # 54 "/usr/include/bits/mathcalls.h" 3 4
28100 extern double acos (
double __x)
throw ();
extern double __acos (
double __x)
throw ();
28102 extern double asin (
double __x)
throw ();
extern double __asin (
double __x)
throw ();
28104 extern double atan (
double __x)
throw ();
extern double __atan (
double __x)
throw ();
28106 extern double atan2 (
double __y,
double __x)
throw ();
extern double __atan2 (
double __y,
double __x)
throw ();
28109 extern double cos (
double __x)
throw ();
extern double __cos (
double __x)
throw ();
28111 extern double sin (
double __x)
throw ();
extern double __sin (
double __x)
throw ();
28113 extern double tan (
double __x)
throw ();
extern double __tan (
double __x)
throw ();
28118 extern double cosh (
double __x)
throw ();
extern double __cosh (
double __x)
throw ();
28120 extern double sinh (
double __x)
throw ();
extern double __sinh (
double __x)
throw ();
28122 extern double tanh (
double __x)
throw ();
extern double __tanh (
double __x)
throw ();
28127 extern void sincos (
double __x,
double *__sinx,
double *__cosx)
throw ();
extern void __sincos (
double __x,
double *__sinx,
double *__cosx)
throw ();
28134 extern double acosh (
double __x)
throw ();
extern double __acosh (
double __x)
throw ();
28136 extern double asinh (
double __x)
throw ();
extern double __asinh (
double __x)
throw ();
28138 extern double atanh (
double __x)
throw ();
extern double __atanh (
double __x)
throw ();
28146 extern double exp (
double __x)
throw ();
extern double __exp (
double __x)
throw ();
28149 extern double frexp (
double __x,
int *__exponent)
throw ();
extern double __frexp (
double __x,
int *__exponent)
throw ();
28152 extern double ldexp (
double __x,
int __exponent)
throw ();
extern double __ldexp (
double __x,
int __exponent)
throw ();
28155 extern double log (
double __x)
throw ();
extern double __log (
double __x)
throw ();
28158 extern double log10 (
double __x)
throw ();
extern double __log10 (
double __x)
throw ();
28161 extern double modf (
double __x,
double *__iptr)
throw ();
extern double __modf (
double __x,
double *__iptr)
throw () __attribute__ ((__nonnull__ (2)));
28166 extern double exp10 (
double __x)
throw ();
extern double __exp10 (
double __x)
throw ();
28168 extern double pow10 (
double __x)
throw ();
extern double __pow10 (
double __x)
throw ();
28174 extern double expm1 (
double __x)
throw ();
extern double __expm1 (
double __x)
throw ();
28177 extern double log1p (
double __x)
throw ();
extern double __log1p (
double __x)
throw ();
28180 extern double logb (
double __x)
throw ();
extern double __logb (
double __x)
throw ();
28187 extern double exp2 (
double __x)
throw ();
extern double __exp2 (
double __x)
throw ();
28190 extern double log2 (
double __x)
throw ();
extern double __log2 (
double __x)
throw ();
28191 # 153 "/usr/include/bits/mathcalls.h" 3 4
28192 extern double pow (
double __x,
double __y)
throw ();
extern double __pow (
double __x,
double __y)
throw ();
28195 extern double sqrt (
double __x)
throw ();
extern double __sqrt (
double __x)
throw ();
28201 extern double hypot (
double __x,
double __y)
throw ();
extern double __hypot (
double __x,
double __y)
throw ();
28208 extern double cbrt (
double __x)
throw ();
extern double __cbrt (
double __x)
throw ();
28209 # 178 "/usr/include/bits/mathcalls.h" 3 4
28210 extern double ceil (
double __x)
throw () __attribute__ ((__const__));
extern double __ceil (
double __x)
throw () __attribute__ ((__const__));
28213 extern double fabs (
double __x)
throw () __attribute__ ((__const__));
extern double __fabs (
double __x)
throw () __attribute__ ((__const__));
28216 extern double floor (
double __x)
throw () __attribute__ ((__const__));
extern double __floor (
double __x)
throw () __attribute__ ((__const__));
28219 extern double fmod (
double __x,
double __y)
throw ();
extern double __fmod (
double __x,
double __y)
throw ();
28224 extern int __isinf (
double __value)
throw () __attribute__ ((__const__));
28227 extern int __finite (
double __value)
throw () __attribute__ ((__const__));
28233 extern int isinf (
double __value)
throw () __attribute__ ((__const__));
28236 extern int finite (
double __value)
throw () __attribute__ ((__const__));
28239 extern double drem (
double __x,
double __y)
throw ();
extern double __drem (
double __x,
double __y)
throw ();
28243 extern double significand (
double __x)
throw ();
extern double __significand (
double __x)
throw ();
28249 extern double copysign (
double __x,
double __y)
throw () __attribute__ ((__const__));
extern double __copysign (
double __x,
double __y)
throw () __attribute__ ((__const__));
28256 extern double nan (
const char *__tagb)
throw () __attribute__ ((__const__));
extern double __nan (
const char *__tagb)
throw () __attribute__ ((__const__));
28262 extern int __isnan (
double __value)
throw () __attribute__ ((__const__));
28266 extern int isnan (
double __value)
throw () __attribute__ ((__const__));
28269 extern double j0 (
double) throw (); extern
double __j0 (
double) throw ();
28270 extern
double j1 (
double) throw (); extern
double __j1 (
double) throw ();
28271 extern
double jn (
int,
double) throw (); extern
double __jn (
int,
double) throw ();
28272 extern
double y0 (
double) throw (); extern
double __y0 (
double) throw ();
28273 extern
double y1 (
double) throw (); extern
double __y1 (
double) throw ();
28274 extern
double yn (
int,
double) throw (); extern
double __yn (
int,
double) throw ();
28281 extern
double erf (
double) throw (); extern
double __erf (
double) throw ();
28282 extern
double erfc (
double) throw (); extern
double __erfc (
double) throw ();
28283 extern
double lgamma (
double) throw (); extern
double __lgamma (
double) throw ();
28290 extern
double tgamma (
double) throw (); extern
double __tgamma (
double) throw ();
28296 extern
double gamma (
double) throw (); extern
double __gamma (
double) throw ();
28303 extern
double lgamma_r (
double,
int *__signgamp) throw (); extern
double __lgamma_r (
double,
int *__signgamp) throw ();
28311 extern
double rint (
double __x) throw (); extern
double __rint (
double __x) throw ();
28314 extern
double nextafter (
double __x,
double __y) throw () __attribute__ ((__const__)); extern
double __nextafter (
double __x,
double __y) throw () __attribute__ ((__const__));
28316 extern
double nexttoward (
double __x,
long double __y) throw () __attribute__ ((__const__)); extern
double __nexttoward (
double __x,
long double __y) throw () __attribute__ ((__const__));
28320 extern
double remainder (
double __x,
double __y) throw (); extern
double __remainder (
double __x,
double __y) throw ();
28324 extern
double scalbn (
double __x,
int __n) throw (); extern
double __scalbn (
double __x,
int __n) throw ();
28328 extern
int ilogb (
double __x) throw (); extern
int __ilogb (
double __x) throw ();
28333 extern
double scalbln (
double __x,
long int __n) throw (); extern
double __scalbln (
double __x,
long int __n) throw ();
28337 extern
double nearbyint (
double __x) throw (); extern
double __nearbyint (
double __x) throw ();
28341 extern
double round (
double __x) throw () __attribute__ ((__const__)); extern
double __round (
double __x) throw () __attribute__ ((__const__));
28345 extern
double trunc (
double __x) throw () __attribute__ ((__const__)); extern
double __trunc (
double __x) throw () __attribute__ ((__const__));
28350 extern
double remquo (
double __x,
double __y,
int *__quo) throw (); extern
double __remquo (
double __x,
double __y,
int *__quo) throw ();
28357 extern
long int lrint (
double __x) throw (); extern
long int __lrint (
double __x) throw ();
28359 extern
long long int llrint (
double __x) throw (); extern
long long int __llrint (
double __x) throw ();
28363 extern
long int lround (
double __x) throw (); extern
long int __lround (
double __x) throw ();
28365 extern
long long int llround (
double __x) throw (); extern
long long int __llround (
double __x) throw ();
28369 extern
double fdim (
double __x,
double __y) throw (); extern
double __fdim (
double __x,
double __y) throw ();
28372 extern
double fmax (
double __x,
double __y) throw () __attribute__ ((__const__)); extern
double __fmax (
double __x,
double __y) throw () __attribute__ ((__const__));
28375 extern
double fmin (
double __x,
double __y) throw () __attribute__ ((__const__)); extern
double __fmin (
double __x,
double __y) throw () __attribute__ ((__const__));
28379 extern
int __fpclassify (
double __value) throw ()
28380 __attribute__ ((__const__));
28383 extern
int __signbit (
double __value) throw ()
28384 __attribute__ ((__const__));
28388 extern
double fma (
double __x,
double __y,
double __z) throw (); extern
double __fma (
double __x,
double __y,
double __z) throw ();
28389 # 365 "/usr/include/bits/mathcalls.h" 3 4
28390 extern int __issignaling (
double __value)
throw ()
28391 __attribute__ ((__const__));
28396 extern double scalb (
double __x,
double __n)
throw ();
extern double __scalb (
double __x,
double __n)
throw ();
28397 # 70 "/usr/include/math.h" 2 3 4
28398 # 88 "/usr/include/math.h" 3 4
28399 # 1 "/usr/include/bits/mathcalls.h" 1 3 4
28400 # 54 "/usr/include/bits/mathcalls.h" 3 4
28401 extern float acosf (
float __x)
throw ();
extern float __acosf (
float __x)
throw ();
28403 extern float asinf (
float __x)
throw ();
extern float __asinf (
float __x)
throw ();
28405 extern float atanf (
float __x)
throw ();
extern float __atanf (
float __x)
throw ();
28407 extern float atan2f (
float __y,
float __x)
throw ();
extern float __atan2f (
float __y,
float __x)
throw ();
28410 extern float cosf (
float __x)
throw ();
extern float __cosf (
float __x)
throw ();
28412 extern float sinf (
float __x)
throw ();
extern float __sinf (
float __x)
throw ();
28414 extern float tanf (
float __x)
throw ();
extern float __tanf (
float __x)
throw ();
28419 extern float coshf (
float __x)
throw ();
extern float __coshf (
float __x)
throw ();
28421 extern float sinhf (
float __x)
throw ();
extern float __sinhf (
float __x)
throw ();
28423 extern float tanhf (
float __x)
throw ();
extern float __tanhf (
float __x)
throw ();
28428 extern void sincosf (
float __x,
float *__sinx,
float *__cosx)
throw ();
extern void __sincosf (
float __x,
float *__sinx,
float *__cosx)
throw ();
28435 extern float acoshf (
float __x)
throw ();
extern float __acoshf (
float __x)
throw ();
28437 extern float asinhf (
float __x)
throw ();
extern float __asinhf (
float __x)
throw ();
28439 extern float atanhf (
float __x)
throw ();
extern float __atanhf (
float __x)
throw ();
28447 extern float expf (
float __x)
throw ();
extern float __expf (
float __x)
throw ();
28450 extern float frexpf (
float __x,
int *__exponent)
throw ();
extern float __frexpf (
float __x,
int *__exponent)
throw ();
28453 extern float ldexpf (
float __x,
int __exponent)
throw ();
extern float __ldexpf (
float __x,
int __exponent)
throw ();
28456 extern float logf (
float __x)
throw ();
extern float __logf (
float __x)
throw ();
28459 extern float log10f (
float __x)
throw ();
extern float __log10f (
float __x)
throw ();
28462 extern float modff (
float __x,
float *__iptr)
throw ();
extern float __modff (
float __x,
float *__iptr)
throw () __attribute__ ((__nonnull__ (2)));
28467 extern float exp10f (
float __x)
throw ();
extern float __exp10f (
float __x)
throw ();
28469 extern float pow10f (
float __x)
throw ();
extern float __pow10f (
float __x)
throw ();
28475 extern float expm1f (
float __x)
throw ();
extern float __expm1f (
float __x)
throw ();
28478 extern float log1pf (
float __x)
throw ();
extern float __log1pf (
float __x)
throw ();
28481 extern float logbf (
float __x)
throw ();
extern float __logbf (
float __x)
throw ();
28488 extern float exp2f (
float __x)
throw ();
extern float __exp2f (
float __x)
throw ();
28491 extern float log2f (
float __x)
throw ();
extern float __log2f (
float __x)
throw ();
28492 # 153 "/usr/include/bits/mathcalls.h" 3 4
28493 extern float powf (
float __x,
float __y)
throw ();
extern float __powf (
float __x,
float __y)
throw ();
28496 extern float sqrtf (
float __x)
throw ();
extern float __sqrtf (
float __x)
throw ();
28502 extern float hypotf (
float __x,
float __y)
throw ();
extern float __hypotf (
float __x,
float __y)
throw ();
28509 extern float cbrtf (
float __x)
throw ();
extern float __cbrtf (
float __x)
throw ();
28510 # 178 "/usr/include/bits/mathcalls.h" 3 4
28511 extern float ceilf (
float __x)
throw () __attribute__ ((__const__));
extern float __ceilf (
float __x)
throw () __attribute__ ((__const__));
28514 extern float fabsf (
float __x)
throw () __attribute__ ((__const__));
extern float __fabsf (
float __x)
throw () __attribute__ ((__const__));
28517 extern float floorf (
float __x)
throw () __attribute__ ((__const__));
extern float __floorf (
float __x)
throw () __attribute__ ((__const__));
28520 extern float fmodf (
float __x,
float __y)
throw ();
extern float __fmodf (
float __x,
float __y)
throw ();
28525 extern int __isinff (
float __value)
throw () __attribute__ ((__const__));
28528 extern int __finitef (
float __value)
throw () __attribute__ ((__const__));
28534 extern int isinff (
float __value)
throw () __attribute__ ((__const__));
28537 extern int finitef (
float __value)
throw () __attribute__ ((__const__));
28540 extern float dremf (
float __x,
float __y)
throw ();
extern float __dremf (
float __x,
float __y)
throw ();
28544 extern float significandf (
float __x)
throw ();
extern float __significandf (
float __x)
throw ();
28550 extern float copysignf (
float __x,
float __y)
throw () __attribute__ ((__const__));
extern float __copysignf (
float __x,
float __y)
throw () __attribute__ ((__const__));
28557 extern float nanf (
const char *__tagb)
throw () __attribute__ ((__const__));
extern float __nanf (
const char *__tagb)
throw () __attribute__ ((__const__));
28563 extern int __isnanf (
float __value)
throw () __attribute__ ((__const__));
28567 extern int isnanf (
float __value)
throw () __attribute__ ((__const__));
28570 extern float j0f (
float) throw (); extern
float __j0f (
float) throw ();
28571 extern
float j1f (
float) throw (); extern
float __j1f (
float) throw ();
28572 extern
float jnf (
int,
float) throw (); extern
float __jnf (
int,
float) throw ();
28573 extern
float y0f (
float) throw (); extern
float __y0f (
float) throw ();
28574 extern
float y1f (
float) throw (); extern
float __y1f (
float) throw ();
28575 extern
float ynf (
int,
float) throw (); extern
float __ynf (
int,
float) throw ();
28582 extern
float erff (
float) throw (); extern
float __erff (
float) throw ();
28583 extern
float erfcf (
float) throw (); extern
float __erfcf (
float) throw ();
28584 extern
float lgammaf (
float) throw (); extern
float __lgammaf (
float) throw ();
28591 extern
float tgammaf (
float) throw (); extern
float __tgammaf (
float) throw ();
28597 extern
float gammaf (
float) throw (); extern
float __gammaf (
float) throw ();
28604 extern
float lgammaf_r (
float,
int *__signgamp) throw (); extern
float __lgammaf_r (
float,
int *__signgamp) throw ();
28612 extern
float rintf (
float __x) throw (); extern
float __rintf (
float __x) throw ();
28615 extern
float nextafterf (
float __x,
float __y) throw () __attribute__ ((__const__)); extern
float __nextafterf (
float __x,
float __y) throw () __attribute__ ((__const__));
28617 extern
float nexttowardf (
float __x,
long double __y) throw () __attribute__ ((__const__)); extern
float __nexttowardf (
float __x,
long double __y) throw () __attribute__ ((__const__));
28621 extern
float remainderf (
float __x,
float __y) throw (); extern
float __remainderf (
float __x,
float __y) throw ();
28625 extern
float scalbnf (
float __x,
int __n) throw (); extern
float __scalbnf (
float __x,
int __n) throw ();
28629 extern
int ilogbf (
float __x) throw (); extern
int __ilogbf (
float __x) throw ();
28634 extern
float scalblnf (
float __x,
long int __n) throw (); extern
float __scalblnf (
float __x,
long int __n) throw ();
28638 extern
float nearbyintf (
float __x) throw (); extern
float __nearbyintf (
float __x) throw ();
28642 extern
float roundf (
float __x) throw () __attribute__ ((__const__)); extern
float __roundf (
float __x) throw () __attribute__ ((__const__));
28646 extern
float truncf (
float __x) throw () __attribute__ ((__const__)); extern
float __truncf (
float __x) throw () __attribute__ ((__const__));
28651 extern
float remquof (
float __x,
float __y,
int *__quo) throw (); extern
float __remquof (
float __x,
float __y,
int *__quo) throw ();
28658 extern
long int lrintf (
float __x) throw (); extern
long int __lrintf (
float __x) throw ();
28660 extern
long long int llrintf (
float __x) throw (); extern
long long int __llrintf (
float __x) throw ();
28664 extern
long int lroundf (
float __x) throw (); extern
long int __lroundf (
float __x) throw ();
28666 extern
long long int llroundf (
float __x) throw (); extern
long long int __llroundf (
float __x) throw ();
28670 extern
float fdimf (
float __x,
float __y) throw (); extern
float __fdimf (
float __x,
float __y) throw ();
28673 extern
float fmaxf (
float __x,
float __y) throw () __attribute__ ((__const__)); extern
float __fmaxf (
float __x,
float __y) throw () __attribute__ ((__const__));
28676 extern
float fminf (
float __x,
float __y) throw () __attribute__ ((__const__)); extern
float __fminf (
float __x,
float __y) throw () __attribute__ ((__const__));
28680 extern
int __fpclassifyf (
float __value) throw ()
28681 __attribute__ ((__const__));
28684 extern
int __signbitf (
float __value) throw ()
28685 __attribute__ ((__const__));
28689 extern
float fmaf (
float __x,
float __y,
float __z) throw (); extern
float __fmaf (
float __x,
float __y,
float __z) throw ();
28690 # 365 "/usr/include/bits/mathcalls.h" 3 4
28691 extern int __issignalingf (
float __value)
throw ()
28692 __attribute__ ((__const__));
28697 extern float scalbf (
float __x,
float __n)
throw ();
extern float __scalbf (
float __x,
float __n)
throw ();
28698 # 89 "/usr/include/math.h" 2 3 4
28699 # 132 "/usr/include/math.h" 3 4
28700 # 1 "/usr/include/bits/mathcalls.h" 1 3 4
28701 # 54 "/usr/include/bits/mathcalls.h" 3 4
28702 extern long double acosl (
long double __x)
throw ();
extern long double __acosl (
long double __x)
throw ();
28704 extern long double asinl (
long double __x)
throw ();
extern long double __asinl (
long double __x)
throw ();
28706 extern long double atanl (
long double __x)
throw ();
extern long double __atanl (
long double __x)
throw ();
28708 extern long double atan2l (
long double __y,
long double __x)
throw ();
extern long double __atan2l (
long double __y,
long double __x)
throw ();
28711 extern long double cosl (
long double __x)
throw ();
extern long double __cosl (
long double __x)
throw ();
28713 extern long double sinl (
long double __x)
throw ();
extern long double __sinl (
long double __x)
throw ();
28715 extern long double tanl (
long double __x)
throw ();
extern long double __tanl (
long double __x)
throw ();
28720 extern long double coshl (
long double __x)
throw ();
extern long double __coshl (
long double __x)
throw ();
28722 extern long double sinhl (
long double __x)
throw ();
extern long double __sinhl (
long double __x)
throw ();
28724 extern long double tanhl (
long double __x)
throw ();
extern long double __tanhl (
long double __x)
throw ();
28729 extern void sincosl (
long double __x,
long double *__sinx,
long double *__cosx)
throw ();
extern void __sincosl (
long double __x,
long double *__sinx,
long double *__cosx)
throw ();
28736 extern long double acoshl (
long double __x)
throw ();
extern long double __acoshl (
long double __x)
throw ();
28738 extern long double asinhl (
long double __x)
throw ();
extern long double __asinhl (
long double __x)
throw ();
28740 extern long double atanhl (
long double __x)
throw ();
extern long double __atanhl (
long double __x)
throw ();
28748 extern long double expl (
long double __x)
throw ();
extern long double __expl (
long double __x)
throw ();
28751 extern long double frexpl (
long double __x,
int *__exponent)
throw ();
extern long double __frexpl (
long double __x,
int *__exponent)
throw ();
28754 extern long double ldexpl (
long double __x,
int __exponent)
throw ();
extern long double __ldexpl (
long double __x,
int __exponent)
throw ();
28757 extern long double logl (
long double __x)
throw ();
extern long double __logl (
long double __x)
throw ();
28760 extern long double log10l (
long double __x)
throw ();
extern long double __log10l (
long double __x)
throw ();
28763 extern long double modfl (
long double __x,
long double *__iptr)
throw ();
extern long double __modfl (
long double __x,
long double *__iptr)
throw () __attribute__ ((__nonnull__ (2)));
28768 extern long double exp10l (
long double __x)
throw ();
extern long double __exp10l (
long double __x)
throw ();
28770 extern long double pow10l (
long double __x)
throw ();
extern long double __pow10l (
long double __x)
throw ();
28776 extern long double expm1l (
long double __x)
throw ();
extern long double __expm1l (
long double __x)
throw ();
28779 extern long double log1pl (
long double __x)
throw ();
extern long double __log1pl (
long double __x)
throw ();
28782 extern long double logbl (
long double __x)
throw ();
extern long double __logbl (
long double __x)
throw ();
28789 extern long double exp2l (
long double __x)
throw ();
extern long double __exp2l (
long double __x)
throw ();
28792 extern long double log2l (
long double __x)
throw ();
extern long double __log2l (
long double __x)
throw ();
28793 # 153 "/usr/include/bits/mathcalls.h" 3 4
28794 extern long double powl (
long double __x,
long double __y)
throw ();
extern long double __powl (
long double __x,
long double __y)
throw ();
28797 extern long double sqrtl (
long double __x)
throw ();
extern long double __sqrtl (
long double __x)
throw ();
28803 extern long double hypotl (
long double __x,
long double __y)
throw ();
extern long double __hypotl (
long double __x,
long double __y)
throw ();
28810 extern long double cbrtl (
long double __x)
throw ();
extern long double __cbrtl (
long double __x)
throw ();
28811 # 178 "/usr/include/bits/mathcalls.h" 3 4
28812 extern long double ceill (
long double __x)
throw () __attribute__ ((__const__));
extern long double __ceill (
long double __x)
throw () __attribute__ ((__const__));
28815 extern long double fabsl (
long double __x)
throw () __attribute__ ((__const__));
extern long double __fabsl (
long double __x)
throw () __attribute__ ((__const__));
28818 extern long double floorl (
long double __x)
throw () __attribute__ ((__const__));
extern long double __floorl (
long double __x)
throw () __attribute__ ((__const__));
28821 extern long double fmodl (
long double __x,
long double __y)
throw ();
extern long double __fmodl (
long double __x,
long double __y)
throw ();
28826 extern int __isinfl (
long double __value)
throw () __attribute__ ((__const__));
28829 extern int __finitel (
long double __value)
throw () __attribute__ ((__const__));
28835 extern int isinfl (
long double __value)
throw () __attribute__ ((__const__));
28838 extern int finitel (
long double __value)
throw () __attribute__ ((__const__));
28841 extern long double dreml (
long double __x,
long double __y)
throw ();
extern long double __dreml (
long double __x,
long double __y)
throw ();
28845 extern long double significandl (
long double __x)
throw ();
extern long double __significandl (
long double __x)
throw ();
28851 extern long double copysignl (
long double __x,
long double __y)
throw () __attribute__ ((__const__));
extern long double __copysignl (
long double __x,
long double __y)
throw () __attribute__ ((__const__));
28858 extern long double nanl (
const char *__tagb)
throw () __attribute__ ((__const__));
extern long double __nanl (
const char *__tagb)
throw () __attribute__ ((__const__));
28864 extern int __isnanl (
long double __value)
throw () __attribute__ ((__const__));
28868 extern int isnanl (
long double __value)
throw () __attribute__ ((__const__));
28871 extern long double j0l (
long double)
throw ();
extern long double __j0l (
long double)
throw ();
28872 extern long double j1l (
long double)
throw ();
extern long double __j1l (
long double)
throw ();
28873 extern long double jnl (
int,
long double)
throw ();
extern long double __jnl (
int,
long double)
throw ();
28874 extern long double y0l (
long double)
throw ();
extern long double __y0l (
long double)
throw ();
28875 extern long double y1l (
long double)
throw ();
extern long double __y1l (
long double)
throw ();
28876 extern long double ynl (
int,
long double)
throw ();
extern long double __ynl (
int,
long double)
throw ();
28883 extern long double erfl (
long double)
throw ();
extern long double __erfl (
long double)
throw ();
28884 extern long double erfcl (
long double)
throw ();
extern long double __erfcl (
long double)
throw ();
28885 extern long double lgammal (
long double)
throw ();
extern long double __lgammal (
long double)
throw ();
28892 extern long double tgammal (
long double)
throw ();
extern long double __tgammal (
long double)
throw ();
28898 extern long double gammal (
long double)
throw ();
extern long double __gammal (
long double)
throw ();
28905 extern long double lgammal_r (
long double,
int *__signgamp)
throw ();
extern long double __lgammal_r (
long double,
int *__signgamp)
throw ();
28913 extern long double rintl (
long double __x)
throw ();
extern long double __rintl (
long double __x)
throw ();
28916 extern long double nextafterl (
long double __x,
long double __y)
throw () __attribute__ ((__const__));
extern long double __nextafterl (
long double __x,
long double __y)
throw () __attribute__ ((__const__));
28918 extern long double nexttowardl (
long double __x,
long double __y)
throw () __attribute__ ((__const__));
extern long double __nexttowardl (
long double __x,
long double __y)
throw () __attribute__ ((__const__));
28922 extern long double remainderl (
long double __x,
long double __y)
throw ();
extern long double __remainderl (
long double __x,
long double __y)
throw ();
28926 extern long double scalbnl (
long double __x,
int __n)
throw ();
extern long double __scalbnl (
long double __x,
int __n)
throw ();
28930 extern int ilogbl (
long double __x)
throw ();
extern int __ilogbl (
long double __x)
throw ();
28935 extern long double scalblnl (
long double __x,
long int __n)
throw ();
extern long double __scalblnl (
long double __x,
long int __n)
throw ();
28939 extern long double nearbyintl (
long double __x)
throw ();
extern long double __nearbyintl (
long double __x)
throw ();
28943 extern long double roundl (
long double __x)
throw () __attribute__ ((__const__));
extern long double __roundl (
long double __x)
throw () __attribute__ ((__const__));
28947 extern long double truncl (
long double __x)
throw () __attribute__ ((__const__));
extern long double __truncl (
long double __x)
throw () __attribute__ ((__const__));
28952 extern long double remquol (
long double __x,
long double __y,
int *__quo)
throw ();
extern long double __remquol (
long double __x,
long double __y,
int *__quo)
throw ();
28959 extern long int lrintl (
long double __x)
throw ();
extern long int __lrintl (
long double __x)
throw ();
28961 extern long long int llrintl (
long double __x)
throw ();
extern long long int __llrintl (
long double __x)
throw ();
28965 extern long int lroundl (
long double __x)
throw ();
extern long int __lroundl (
long double __x)
throw ();
28967 extern long long int llroundl (
long double __x)
throw ();
extern long long int __llroundl (
long double __x)
throw ();
28971 extern long double fdiml (
long double __x,
long double __y)
throw ();
extern long double __fdiml (
long double __x,
long double __y)
throw ();
28974 extern long double fmaxl (
long double __x,
long double __y)
throw () __attribute__ ((__const__));
extern long double __fmaxl (
long double __x,
long double __y)
throw () __attribute__ ((__const__));
28977 extern long double fminl (
long double __x,
long double __y)
throw () __attribute__ ((__const__));
extern long double __fminl (
long double __x,
long double __y)
throw () __attribute__ ((__const__));
28981 extern int __fpclassifyl (
long double __value)
throw ()
28982 __attribute__ ((__const__));
28985 extern int __signbitl (
long double __value)
throw ()
28986 __attribute__ ((__const__));
28990 extern long double fmal (
long double __x,
long double __y,
long double __z)
throw ();
extern long double __fmal (
long double __x,
long double __y,
long double __z)
throw ();
28991 # 365 "/usr/include/bits/mathcalls.h" 3 4
28992 extern int __issignalingl (
long double __value)
throw ()
28993 __attribute__ ((__const__));
28998 extern long double scalbl (
long double __x,
long double __n)
throw ();
extern long double __scalbl (
long double __x,
long double __n)
throw ();
28999 # 133 "/usr/include/math.h" 2 3 4
29000 # 148 "/usr/include/math.h" 3 4
29001 extern int signgam;
29002 # 189 "/usr/include/math.h" 3 4
29021 # 301 "/usr/include/math.h" 3 4
29029 } _LIB_VERSION_TYPE;
29034 extern _LIB_VERSION_TYPE _LIB_VERSION;
29035 # 324 "/usr/include/math.h" 3 4
29049 extern int matherr (
struct __exception *__exc)
throw ();
29050 # 488 "/usr/include/math.h" 3 4
29052 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 2 3
29053 # 75 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 3
29054 namespace std __attribute__ ((__visibility__ ("default")))
29059 inline constexpr
double
29061 {
return __builtin_fabs(__x); }
29065 inline constexpr
float
29067 {
return __builtin_fabsf(__x); }
29069 inline constexpr
long double
29070 abs(
long double __x)
29071 {
return __builtin_fabsl(__x); }
29074 template<
typename _Tp>
29076 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29079 {
return __builtin_fabs(__x); }
29084 inline constexpr
float
29086 {
return __builtin_acosf(__x); }
29088 inline constexpr
long double
29089 acos(
long double __x)
29090 {
return __builtin_acosl(__x); }
29093 template<
typename _Tp>
29095 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29098 {
return __builtin_acos(__x); }
29103 inline constexpr
float
29105 {
return __builtin_asinf(__x); }
29107 inline constexpr
long double
29108 asin(
long double __x)
29109 {
return __builtin_asinl(__x); }
29112 template<
typename _Tp>
29114 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29117 {
return __builtin_asin(__x); }
29122 inline constexpr
float
29124 {
return __builtin_atanf(__x); }
29126 inline constexpr
long double
29127 atan(
long double __x)
29128 {
return __builtin_atanl(__x); }
29131 template<
typename _Tp>
29133 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29136 {
return __builtin_atan(__x); }
29141 inline constexpr
float
29142 atan2(
float __y,
float __x)
29143 {
return __builtin_atan2f(__y, __x); }
29145 inline constexpr
long double
29146 atan2(
long double __y,
long double __x)
29147 {
return __builtin_atan2l(__y, __x); }
29150 template<
typename _Tp,
typename _Up>
29152 typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
29153 atan2(_Tp __y, _Up __x)
29155 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29156 return atan2(__type(__y), __type(__x));
29162 inline constexpr
float
29164 {
return __builtin_ceilf(__x); }
29166 inline constexpr
long double
29167 ceil(
long double __x)
29168 {
return __builtin_ceill(__x); }
29171 template<
typename _Tp>
29173 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29176 {
return __builtin_ceil(__x); }
29181 inline constexpr
float
29183 {
return __builtin_cosf(__x); }
29185 inline constexpr
long double
29186 cos(
long double __x)
29187 {
return __builtin_cosl(__x); }
29190 template<
typename _Tp>
29192 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29195 {
return __builtin_cos(__x); }
29200 inline constexpr
float
29202 {
return __builtin_coshf(__x); }
29204 inline constexpr
long double
29205 cosh(
long double __x)
29206 {
return __builtin_coshl(__x); }
29209 template<
typename _Tp>
29211 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29214 {
return __builtin_cosh(__x); }
29219 inline constexpr
float
29221 {
return __builtin_expf(__x); }
29223 inline constexpr
long double
29224 exp(
long double __x)
29225 {
return __builtin_expl(__x); }
29228 template<
typename _Tp>
29230 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29233 {
return __builtin_exp(__x); }
29238 inline constexpr
float
29240 {
return __builtin_fabsf(__x); }
29242 inline constexpr
long double
29243 fabs(
long double __x)
29244 {
return __builtin_fabsl(__x); }
29247 template<
typename _Tp>
29249 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29252 {
return __builtin_fabs(__x); }
29257 inline constexpr
float
29259 {
return __builtin_floorf(__x); }
29261 inline constexpr
long double
29262 floor(
long double __x)
29263 {
return __builtin_floorl(__x); }
29266 template<
typename _Tp>
29268 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29271 {
return __builtin_floor(__x); }
29276 inline constexpr
float
29277 fmod(
float __x,
float __y)
29278 {
return __builtin_fmodf(__x, __y); }
29280 inline constexpr
long double
29281 fmod(
long double __x,
long double __y)
29282 {
return __builtin_fmodl(__x, __y); }
29285 template<
typename _Tp,
typename _Up>
29287 typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
29288 fmod(_Tp __x, _Up __y)
29290 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29291 return fmod(__type(__x), __type(__y));
29298 frexp(
float __x,
int* __exp)
29299 {
return __builtin_frexpf(__x, __exp); }
29302 frexp(
long double __x,
int* __exp)
29303 {
return __builtin_frexpl(__x, __exp); }
29306 template<
typename _Tp>
29308 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29310 frexp(_Tp __x,
int* __exp)
29311 {
return __builtin_frexp(__x, __exp); }
29316 inline constexpr
float
29317 ldexp(
float __x,
int __exp)
29318 {
return __builtin_ldexpf(__x, __exp); }
29320 inline constexpr
long double
29321 ldexp(
long double __x,
int __exp)
29322 {
return __builtin_ldexpl(__x, __exp); }
29325 template<
typename _Tp>
29327 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29329 ldexp(_Tp __x,
int __exp)
29330 {
return __builtin_ldexp(__x, __exp); }
29335 inline constexpr
float
29337 {
return __builtin_logf(__x); }
29339 inline constexpr
long double
29340 log(
long double __x)
29341 {
return __builtin_logl(__x); }
29344 template<
typename _Tp>
29346 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29349 {
return __builtin_log(__x); }
29354 inline constexpr
float
29356 {
return __builtin_log10f(__x); }
29358 inline constexpr
long double
29359 log10(
long double __x)
29360 {
return __builtin_log10l(__x); }
29363 template<
typename _Tp>
29365 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29368 {
return __builtin_log10(__x); }
29374 modf(
float __x,
float* __iptr)
29375 {
return __builtin_modff(__x, __iptr); }
29378 modf(
long double __x,
long double* __iptr)
29379 {
return __builtin_modfl(__x, __iptr); }
29385 inline constexpr
float
29386 pow(
float __x,
float __y)
29387 {
return __builtin_powf(__x, __y); }
29389 inline constexpr
long double
29390 pow(
long double __x,
long double __y)
29391 {
return __builtin_powl(__x, __y); }
29392 # 431 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 3
29393 template<
typename _Tp,
typename _Up>
29395 typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
29396 pow(_Tp __x, _Up __y)
29398 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29399 return pow(__type(__x), __type(__y));
29405 inline constexpr
float
29407 {
return __builtin_sinf(__x); }
29409 inline constexpr
long double
29410 sin(
long double __x)
29411 {
return __builtin_sinl(__x); }
29414 template<
typename _Tp>
29416 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29419 {
return __builtin_sin(__x); }
29424 inline constexpr
float
29426 {
return __builtin_sinhf(__x); }
29428 inline constexpr
long double
29429 sinh(
long double __x)
29430 {
return __builtin_sinhl(__x); }
29433 template<
typename _Tp>
29435 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29438 {
return __builtin_sinh(__x); }
29443 inline constexpr
float
29445 {
return __builtin_sqrtf(__x); }
29447 inline constexpr
long double
29448 sqrt(
long double __x)
29449 {
return __builtin_sqrtl(__x); }
29452 template<
typename _Tp>
29454 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29457 {
return __builtin_sqrt(__x); }
29462 inline constexpr
float
29464 {
return __builtin_tanf(__x); }
29466 inline constexpr
long double
29467 tan(
long double __x)
29468 {
return __builtin_tanl(__x); }
29471 template<
typename _Tp>
29473 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29476 {
return __builtin_tan(__x); }
29481 inline constexpr
float
29483 {
return __builtin_tanhf(__x); }
29485 inline constexpr
long double
29486 tanh(
long double __x)
29487 {
return __builtin_tanhl(__x); }
29490 template<
typename _Tp>
29492 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29495 {
return __builtin_tanh(__x); }
29499 # 555 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 3
29500 namespace std __attribute__ ((__visibility__ ("default")))
29506 fpclassify(
float __x)
29507 {
return __builtin_fpclassify(0, 1, 4,
29511 fpclassify(
double __x)
29512 {
return __builtin_fpclassify(0, 1, 4,
29516 fpclassify(
long double __x)
29517 {
return __builtin_fpclassify(0, 1, 4,
29520 template<
typename _Tp>
29521 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29523 fpclassify(_Tp __x)
29524 {
return __x != 0 ? 4 : 2; }
29527 isfinite(
float __x)
29528 {
return __builtin_isfinite(__x); }
29531 isfinite(
double __x)
29532 {
return __builtin_isfinite(__x); }
29535 isfinite(
long double __x)
29536 {
return __builtin_isfinite(__x); }
29538 template<
typename _Tp>
29539 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29546 {
return __builtin_isinf(__x); }
29550 {
return __builtin_isinf(__x); }
29553 isinf(
long double __x)
29554 {
return __builtin_isinf(__x); }
29556 template<
typename _Tp>
29557 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29564 {
return __builtin_isnan(__x); }
29568 {
return __builtin_isnan(__x); }
29571 isnan(
long double __x)
29572 {
return __builtin_isnan(__x); }
29574 template<
typename _Tp>
29575 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29581 isnormal(
float __x)
29582 {
return __builtin_isnormal(__x); }
29585 isnormal(
double __x)
29586 {
return __builtin_isnormal(__x); }
29589 isnormal(
long double __x)
29590 {
return __builtin_isnormal(__x); }
29592 template<
typename _Tp>
29593 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29596 {
return __x != 0 ?
true :
false; }
29601 {
return __builtin_signbitf(__x); }
29604 signbit(
double __x)
29605 {
return __builtin_signbit(__x); }
29608 signbit(
long double __x)
29609 {
return __builtin_signbitl(__x); }
29611 template<
typename _Tp>
29612 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29615 {
return __x < 0 ?
true :
false; }
29618 isgreater(
float __x,
float __y)
29619 {
return __builtin_isgreater(__x, __y); }
29622 isgreater(
double __x,
double __y)
29623 {
return __builtin_isgreater(__x, __y); }
29626 isgreater(
long double __x,
long double __y)
29627 {
return __builtin_isgreater(__x, __y); }
29629 template<
typename _Tp,
typename _Up>
29631 __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value
29632 && __is_arithmetic<_Up>::__value),
bool>::__type
29633 isgreater(_Tp __x, _Up __y)
29635 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29636 return __builtin_isgreater(__type(__x), __type(__y));
29640 isgreaterequal(
float __x,
float __y)
29641 {
return __builtin_isgreaterequal(__x, __y); }
29644 isgreaterequal(
double __x,
double __y)
29645 {
return __builtin_isgreaterequal(__x, __y); }
29648 isgreaterequal(
long double __x,
long double __y)
29649 {
return __builtin_isgreaterequal(__x, __y); }
29651 template<
typename _Tp,
typename _Up>
29653 __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value
29654 && __is_arithmetic<_Up>::__value),
bool>::__type
29655 isgreaterequal(_Tp __x, _Up __y)
29657 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29658 return __builtin_isgreaterequal(__type(__x), __type(__y));
29662 isless(
float __x,
float __y)
29663 {
return __builtin_isless(__x, __y); }
29666 isless(
double __x,
double __y)
29667 {
return __builtin_isless(__x, __y); }
29670 isless(
long double __x,
long double __y)
29671 {
return __builtin_isless(__x, __y); }
29673 template<
typename _Tp,
typename _Up>
29675 __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value
29676 && __is_arithmetic<_Up>::__value),
bool>::__type
29677 isless(_Tp __x, _Up __y)
29679 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29680 return __builtin_isless(__type(__x), __type(__y));
29684 islessequal(
float __x,
float __y)
29685 {
return __builtin_islessequal(__x, __y); }
29688 islessequal(
double __x,
double __y)
29689 {
return __builtin_islessequal(__x, __y); }
29692 islessequal(
long double __x,
long double __y)
29693 {
return __builtin_islessequal(__x, __y); }
29695 template<
typename _Tp,
typename _Up>
29697 __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value
29698 && __is_arithmetic<_Up>::__value),
bool>::__type
29699 islessequal(_Tp __x, _Up __y)
29701 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29702 return __builtin_islessequal(__type(__x), __type(__y));
29706 islessgreater(
float __x,
float __y)
29707 {
return __builtin_islessgreater(__x, __y); }
29710 islessgreater(
double __x,
double __y)
29711 {
return __builtin_islessgreater(__x, __y); }
29714 islessgreater(
long double __x,
long double __y)
29715 {
return __builtin_islessgreater(__x, __y); }
29717 template<
typename _Tp,
typename _Up>
29719 __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value
29720 && __is_arithmetic<_Up>::__value),
bool>::__type
29721 islessgreater(_Tp __x, _Up __y)
29723 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29724 return __builtin_islessgreater(__type(__x), __type(__y));
29728 isunordered(
float __x,
float __y)
29729 {
return __builtin_isunordered(__x, __y); }
29732 isunordered(
double __x,
double __y)
29733 {
return __builtin_isunordered(__x, __y); }
29736 isunordered(
long double __x,
long double __y)
29737 {
return __builtin_isunordered(__x, __y); }
29739 template<
typename _Tp,
typename _Up>
29741 __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value
29742 && __is_arithmetic<_Up>::__value),
bool>::__type
29743 isunordered(_Tp __x, _Up __y)
29745 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29746 return __builtin_isunordered(__type(__x), __type(__y));
29748 # 918 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 3
29750 # 1033 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 3
29751 namespace std __attribute__ ((__visibility__ ("default")))
29857 using ::nearbyintf;
29858 using ::nearbyintl;
29861 using ::nextafterf;
29862 using ::nextafterl;
29864 using ::nexttoward;
29865 using ::nexttowardf;
29866 using ::nexttowardl;
29869 using ::remainderf;
29870 using ::remainderl;
29903 {
return __builtin_acoshf(__x); }
29905 constexpr
long double
29906 acosh(
long double __x)
29907 {
return __builtin_acoshl(__x); }
29909 template<
typename _Tp>
29910 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29913 {
return __builtin_acosh(__x); }
29917 {
return __builtin_asinhf(__x); }
29919 constexpr
long double
29920 asinh(
long double __x)
29921 {
return __builtin_asinhl(__x); }
29923 template<
typename _Tp>
29924 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29927 {
return __builtin_asinh(__x); }
29931 {
return __builtin_atanhf(__x); }
29933 constexpr
long double
29934 atanh(
long double __x)
29935 {
return __builtin_atanhl(__x); }
29937 template<
typename _Tp>
29938 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29941 {
return __builtin_atanh(__x); }
29945 {
return __builtin_cbrtf(__x); }
29947 constexpr
long double
29948 cbrt(
long double __x)
29949 {
return __builtin_cbrtl(__x); }
29951 template<
typename _Tp>
29952 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29955 {
return __builtin_cbrt(__x); }
29958 copysign(
float __x,
float __y)
29959 {
return __builtin_copysignf(__x, __y); }
29961 constexpr
long double
29962 copysign(
long double __x,
long double __y)
29963 {
return __builtin_copysignl(__x, __y); }
29965 template<
typename _Tp,
typename _Up>
29966 constexpr
typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
29967 copysign(_Tp __x, _Up __y)
29969 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29970 return copysign(__type(__x), __type(__y));
29975 {
return __builtin_erff(__x); }
29977 constexpr
long double
29978 erf(
long double __x)
29979 {
return __builtin_erfl(__x); }
29981 template<
typename _Tp>
29982 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29985 {
return __builtin_erf(__x); }
29989 {
return __builtin_erfcf(__x); }
29991 constexpr
long double
29992 erfc(
long double __x)
29993 {
return __builtin_erfcl(__x); }
29995 template<
typename _Tp>
29996 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29999 {
return __builtin_erfc(__x); }
30003 {
return __builtin_exp2f(__x); }
30005 constexpr
long double
30006 exp2(
long double __x)
30007 {
return __builtin_exp2l(__x); }
30009 template<
typename _Tp>
30010 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30013 {
return __builtin_exp2(__x); }
30017 {
return __builtin_expm1f(__x); }
30019 constexpr
long double
30020 expm1(
long double __x)
30021 {
return __builtin_expm1l(__x); }
30023 template<
typename _Tp>
30024 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30027 {
return __builtin_expm1(__x); }
30030 fdim(
float __x,
float __y)
30031 {
return __builtin_fdimf(__x, __y); }
30033 constexpr
long double
30034 fdim(
long double __x,
long double __y)
30035 {
return __builtin_fdiml(__x, __y); }
30037 template<
typename _Tp,
typename _Up>
30038 constexpr
typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
30039 fdim(_Tp __x, _Up __y)
30041 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
30042 return fdim(__type(__x), __type(__y));
30046 fma(
float __x,
float __y,
float __z)
30047 {
return __builtin_fmaf(__x, __y, __z); }
30049 constexpr
long double
30050 fma(
long double __x,
long double __y,
long double __z)
30051 {
return __builtin_fmal(__x, __y, __z); }
30053 template<
typename _Tp,
typename _Up,
typename _Vp>
30054 constexpr
typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type
30055 fma(_Tp __x, _Up __y, _Vp __z)
30057 typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type;
30058 return fma(__type(__x), __type(__y), __type(__z));
30062 fmax(
float __x,
float __y)
30063 {
return __builtin_fmaxf(__x, __y); }
30065 constexpr
long double
30066 fmax(
long double __x,
long double __y)
30067 {
return __builtin_fmaxl(__x, __y); }
30069 template<
typename _Tp,
typename _Up>
30070 constexpr
typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
30071 fmax(_Tp __x, _Up __y)
30073 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
30074 return fmax(__type(__x), __type(__y));
30078 fmin(
float __x,
float __y)
30079 {
return __builtin_fminf(__x, __y); }
30081 constexpr
long double
30082 fmin(
long double __x,
long double __y)
30083 {
return __builtin_fminl(__x, __y); }
30085 template<
typename _Tp,
typename _Up>
30086 constexpr
typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
30087 fmin(_Tp __x, _Up __y)
30089 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
30090 return fmin(__type(__x), __type(__y));
30094 hypot(
float __x,
float __y)
30095 {
return __builtin_hypotf(__x, __y); }
30097 constexpr
long double
30098 hypot(
long double __x,
long double __y)
30099 {
return __builtin_hypotl(__x, __y); }
30101 template<
typename _Tp,
typename _Up>
30102 constexpr
typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
30103 hypot(_Tp __x, _Up __y)
30105 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
30106 return hypot(__type(__x), __type(__y));
30111 {
return __builtin_ilogbf(__x); }
30114 ilogb(
long double __x)
30115 {
return __builtin_ilogbl(__x); }
30117 template<
typename _Tp>
30119 typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30122 {
return __builtin_ilogb(__x); }
30126 {
return __builtin_lgammaf(__x); }
30128 constexpr
long double
30129 lgamma(
long double __x)
30130 {
return __builtin_lgammal(__x); }
30132 template<
typename _Tp>
30133 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30136 {
return __builtin_lgamma(__x); }
30138 constexpr
long long
30140 {
return __builtin_llrintf(__x); }
30142 constexpr
long long
30143 llrint(
long double __x)
30144 {
return __builtin_llrintl(__x); }
30146 template<
typename _Tp>
30147 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30150 {
return __builtin_llrint(__x); }
30152 constexpr
long long
30154 {
return __builtin_llroundf(__x); }
30156 constexpr
long long
30157 llround(
long double __x)
30158 {
return __builtin_llroundl(__x); }
30160 template<
typename _Tp>
30161 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30164 {
return __builtin_llround(__x); }
30168 {
return __builtin_log1pf(__x); }
30170 constexpr
long double
30171 log1p(
long double __x)
30172 {
return __builtin_log1pl(__x); }
30174 template<
typename _Tp>
30175 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30178 {
return __builtin_log1p(__x); }
30183 {
return __builtin_log2f(__x); }
30185 constexpr
long double
30186 log2(
long double __x)
30187 {
return __builtin_log2l(__x); }
30189 template<
typename _Tp>
30190 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30193 {
return __builtin_log2(__x); }
30197 {
return __builtin_logbf(__x); }
30199 constexpr
long double
30200 logb(
long double __x)
30201 {
return __builtin_logbl(__x); }
30203 template<
typename _Tp>
30204 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30207 {
return __builtin_logb(__x); }
30211 {
return __builtin_lrintf(__x); }
30214 lrint(
long double __x)
30215 {
return __builtin_lrintl(__x); }
30217 template<
typename _Tp>
30218 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30221 {
return __builtin_lrint(__x); }
30225 {
return __builtin_lroundf(__x); }
30228 lround(
long double __x)
30229 {
return __builtin_lroundl(__x); }
30231 template<
typename _Tp>
30232 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30235 {
return __builtin_lround(__x); }
30238 nearbyint(
float __x)
30239 {
return __builtin_nearbyintf(__x); }
30241 constexpr
long double
30242 nearbyint(
long double __x)
30243 {
return __builtin_nearbyintl(__x); }
30245 template<
typename _Tp>
30246 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30249 {
return __builtin_nearbyint(__x); }
30252 nextafter(
float __x,
float __y)
30253 {
return __builtin_nextafterf(__x, __y); }
30255 constexpr
long double
30256 nextafter(
long double __x,
long double __y)
30257 {
return __builtin_nextafterl(__x, __y); }
30259 template<
typename _Tp,
typename _Up>
30260 constexpr
typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
30261 nextafter(_Tp __x, _Up __y)
30263 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
30264 return nextafter(__type(__x), __type(__y));
30268 nexttoward(
float __x,
long double __y)
30269 {
return __builtin_nexttowardf(__x, __y); }
30271 constexpr
long double
30272 nexttoward(
long double __x,
long double __y)
30273 {
return __builtin_nexttowardl(__x, __y); }
30275 template<
typename _Tp>
30276 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30278 nexttoward(_Tp __x,
long double __y)
30279 {
return __builtin_nexttoward(__x, __y); }
30282 remainder(
float __x,
float __y)
30283 {
return __builtin_remainderf(__x, __y); }
30285 constexpr
long double
30286 remainder(
long double __x,
long double __y)
30287 {
return __builtin_remainderl(__x, __y); }
30289 template<
typename _Tp,
typename _Up>
30290 constexpr
typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
30291 remainder(_Tp __x, _Up __y)
30293 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
30294 return remainder(__type(__x), __type(__y));
30298 remquo(
float __x,
float __y,
int* __pquo)
30299 {
return __builtin_remquof(__x, __y, __pquo); }
30302 remquo(
long double __x,
long double __y,
int* __pquo)
30303 {
return __builtin_remquol(__x, __y, __pquo); }
30305 template<
typename _Tp,
typename _Up>
30306 inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
30307 remquo(_Tp __x, _Up __y,
int* __pquo)
30309 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
30310 return remquo(__type(__x), __type(__y), __pquo);
30315 {
return __builtin_rintf(__x); }
30317 constexpr
long double
30318 rint(
long double __x)
30319 {
return __builtin_rintl(__x); }
30321 template<
typename _Tp>
30322 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30325 {
return __builtin_rint(__x); }
30329 {
return __builtin_roundf(__x); }
30331 constexpr
long double
30332 round(
long double __x)
30333 {
return __builtin_roundl(__x); }
30335 template<
typename _Tp>
30336 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30339 {
return __builtin_round(__x); }
30342 scalbln(
float __x,
long __ex)
30343 {
return __builtin_scalblnf(__x, __ex); }
30345 constexpr
long double
30346 scalbln(
long double __x,
long __ex)
30347 {
return __builtin_scalblnl(__x, __ex); }
30349 template<
typename _Tp>
30350 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30352 scalbln(_Tp __x,
long __ex)
30353 {
return __builtin_scalbln(__x, __ex); }
30356 scalbn(
float __x,
int __ex)
30357 {
return __builtin_scalbnf(__x, __ex); }
30359 constexpr
long double
30360 scalbn(
long double __x,
int __ex)
30361 {
return __builtin_scalbnl(__x, __ex); }
30363 template<
typename _Tp>
30364 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30366 scalbn(_Tp __x,
int __ex)
30367 {
return __builtin_scalbn(__x, __ex); }
30371 {
return __builtin_tgammaf(__x); }
30373 constexpr
long double
30374 tgamma(
long double __x)
30375 {
return __builtin_tgammal(__x); }
30377 template<
typename _Tp>
30378 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30381 {
return __builtin_tgamma(__x); }
30385 {
return __builtin_truncf(__x); }
30387 constexpr
long double
30388 trunc(
long double __x)
30389 {
return __builtin_truncl(__x); }
30391 template<
typename _Tp>
30392 constexpr
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30395 {
return __builtin_trunc(__x); }
30399 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/random" 2 3
30400 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 1 3
30401 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
30402 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/random" 2 3
30405 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/limits" 1 3
30406 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/limits" 3
30407 # 147 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/limits" 3
30408 namespace std __attribute__ ((__visibility__ ("default")))
30417 enum float_round_style
30419 round_indeterminate = -1,
30420 round_toward_zero = 0,
30421 round_to_nearest = 1,
30422 round_toward_infinity = 2,
30423 round_toward_neg_infinity = 3
30432 enum float_denorm_style
30435 denorm_indeterminate = -1,
30441 # 191 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/limits" 3
30442 struct __numeric_limits_base
30446 static constexpr
bool is_specialized =
false;
30451 static constexpr
int digits = 0;
30454 static constexpr
int digits10 = 0;
30459 static constexpr
int max_digits10 = 0;
30463 static constexpr
bool is_signed =
false;
30466 static constexpr
bool is_integer =
false;
30471 static constexpr
bool is_exact =
false;
30475 static constexpr
int radix = 0;
30479 static constexpr
int min_exponent = 0;
30483 static constexpr
int min_exponent10 = 0;
30488 static constexpr
int max_exponent = 0;
30492 static constexpr
int max_exponent10 = 0;
30495 static constexpr
bool has_infinity =
false;
30499 static constexpr
bool has_quiet_NaN =
false;
30503 static constexpr
bool has_signaling_NaN =
false;
30506 static constexpr float_denorm_style has_denorm = denorm_absent;
30510 static constexpr
bool has_denorm_loss =
false;
30514 static constexpr
bool is_iec559 =
false;
30519 static constexpr
bool is_bounded =
false;
30520 # 277 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/limits" 3
30521 static constexpr
bool is_modulo =
false;
30524 static constexpr
bool traps =
false;
30527 static constexpr
bool tinyness_before =
false;
30532 static constexpr float_round_style round_style =
30535 # 303 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/limits" 3
30536 template<
typename _Tp>
30537 struct numeric_limits :
public __numeric_limits_base
30541 static constexpr _Tp
30542 min() noexcept {
return _Tp(); }
30545 static constexpr _Tp
30546 max() noexcept {
return _Tp(); }
30551 static constexpr _Tp
30552 lowest() noexcept {
return _Tp(); }
30557 static constexpr _Tp
30558 epsilon() noexcept {
return _Tp(); }
30561 static constexpr _Tp
30562 round_error() noexcept {
return _Tp(); }
30565 static constexpr _Tp
30566 infinity() noexcept {
return _Tp(); }
30570 static constexpr _Tp
30571 quiet_NaN() noexcept {
return _Tp(); }
30575 static constexpr _Tp
30576 signaling_NaN() noexcept {
return _Tp(); }
30581 static constexpr _Tp
30582 denorm_min() noexcept {
return _Tp(); }
30586 template<
typename _Tp>
30587 struct numeric_limits<const _Tp>
30588 :
public numeric_limits<_Tp> { };
30590 template<
typename _Tp>
30591 struct numeric_limits<volatile _Tp>
30592 :
public numeric_limits<_Tp> { };
30594 template<
typename _Tp>
30595 struct numeric_limits<const volatile _Tp>
30596 :
public numeric_limits<_Tp> { };
30604 struct numeric_limits<bool>
30606 static constexpr
bool is_specialized =
true;
30608 static constexpr
bool
30609 min() noexcept {
return false; }
30611 static constexpr
bool
30612 max() noexcept {
return true; }
30615 static constexpr
bool
30616 lowest() noexcept {
return min(); }
30618 static constexpr
int digits = 1;
30619 static constexpr
int digits10 = 0;
30621 static constexpr
int max_digits10 = 0;
30623 static constexpr
bool is_signed =
false;
30624 static constexpr
bool is_integer =
true;
30625 static constexpr
bool is_exact =
true;
30626 static constexpr
int radix = 2;
30628 static constexpr
bool
30629 epsilon() noexcept {
return false; }
30631 static constexpr
bool
30632 round_error() noexcept {
return false; }
30634 static constexpr
int min_exponent = 0;
30635 static constexpr
int min_exponent10 = 0;
30636 static constexpr
int max_exponent = 0;
30637 static constexpr
int max_exponent10 = 0;
30639 static constexpr
bool has_infinity =
false;
30640 static constexpr
bool has_quiet_NaN =
false;
30641 static constexpr
bool has_signaling_NaN =
false;
30642 static constexpr float_denorm_style has_denorm
30644 static constexpr
bool has_denorm_loss =
false;
30646 static constexpr
bool
30647 infinity() noexcept {
return false; }
30649 static constexpr
bool
30650 quiet_NaN() noexcept {
return false; }
30652 static constexpr
bool
30653 signaling_NaN() noexcept {
return false; }
30655 static constexpr
bool
30656 denorm_min() noexcept {
return false; }
30658 static constexpr
bool is_iec559 =
false;
30659 static constexpr
bool is_bounded =
true;
30660 static constexpr
bool is_modulo =
false;
30665 static constexpr
bool traps =
true;
30666 static constexpr
bool tinyness_before =
false;
30667 static constexpr float_round_style round_style
30668 = round_toward_zero;
30673 struct numeric_limits<char>
30675 static constexpr
bool is_specialized =
true;
30677 static constexpr
char
30678 min() noexcept {
return (((
char)(-1) < 0) ? -(((
char)(-1) < 0) ? (((((
char)1 << ((
sizeof(
char) * 8 - ((
char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(
char)0) - 1 : (
char)0); }
30680 static constexpr
char
30681 max() noexcept {
return (((
char)(-1) < 0) ? (((((
char)1 << ((
sizeof(
char) * 8 - ((
char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(
char)0); }
30684 static constexpr
char
30685 lowest() noexcept {
return min(); }
30688 static constexpr
int digits = (
sizeof(char) * 8 - ((
char)(-1) < 0));
30689 static constexpr
int digits10 = ((
sizeof(char) * 8 - ((
char)(-1) < 0)) * 643L / 2136);
30691 static constexpr
int max_digits10 = 0;
30693 static constexpr
bool is_signed = ((char)(-1) < 0);
30694 static constexpr
bool is_integer =
true;
30695 static constexpr
bool is_exact =
true;
30696 static constexpr
int radix = 2;
30698 static constexpr
char
30699 epsilon() noexcept {
return 0; }
30701 static constexpr
char
30702 round_error() noexcept {
return 0; }
30704 static constexpr
int min_exponent = 0;
30705 static constexpr
int min_exponent10 = 0;
30706 static constexpr
int max_exponent = 0;
30707 static constexpr
int max_exponent10 = 0;
30709 static constexpr
bool has_infinity =
false;
30710 static constexpr
bool has_quiet_NaN =
false;
30711 static constexpr
bool has_signaling_NaN =
false;
30712 static constexpr float_denorm_style has_denorm
30714 static constexpr
bool has_denorm_loss =
false;
30717 char infinity() noexcept {
return char(); }
30719 static constexpr
char
30720 quiet_NaN() noexcept {
return char(); }
30722 static constexpr
char
30723 signaling_NaN() noexcept {
return char(); }
30725 static constexpr
char
30726 denorm_min() noexcept {
return static_cast<char>(0); }
30728 static constexpr
bool is_iec559 =
false;
30729 static constexpr
bool is_bounded =
true;
30730 static constexpr
bool is_modulo = !is_signed;
30732 static constexpr
bool traps =
true;
30733 static constexpr
bool tinyness_before =
false;
30734 static constexpr float_round_style round_style
30735 = round_toward_zero;
30740 struct numeric_limits<signed char>
30742 static constexpr
bool is_specialized =
true;
30744 static constexpr
signed char
30745 min() noexcept {
return -127 - 1; }
30747 static constexpr
signed char
30748 max() noexcept {
return 127; }
30751 static constexpr
signed char
30752 lowest() noexcept {
return min(); }
30755 static constexpr
int digits = (
sizeof(
signed char) * 8 - ((
signed char)(-1) < 0));
30756 static constexpr
int digits10
30757 = ((
sizeof(
signed char) * 8 - ((
signed char)(-1) < 0)) * 643L / 2136);
30759 static constexpr
int max_digits10 = 0;
30761 static constexpr
bool is_signed =
true;
30762 static constexpr
bool is_integer =
true;
30763 static constexpr
bool is_exact =
true;
30764 static constexpr
int radix = 2;
30766 static constexpr
signed char
30767 epsilon() noexcept {
return 0; }
30769 static constexpr
signed char
30770 round_error() noexcept {
return 0; }
30772 static constexpr
int min_exponent = 0;
30773 static constexpr
int min_exponent10 = 0;
30774 static constexpr
int max_exponent = 0;
30775 static constexpr
int max_exponent10 = 0;
30777 static constexpr
bool has_infinity =
false;
30778 static constexpr
bool has_quiet_NaN =
false;
30779 static constexpr
bool has_signaling_NaN =
false;
30780 static constexpr float_denorm_style has_denorm
30782 static constexpr
bool has_denorm_loss =
false;
30784 static constexpr
signed char
30785 infinity() noexcept {
return static_cast<signed char>(0); }
30787 static constexpr
signed char
30788 quiet_NaN() noexcept {
return static_cast<signed char>(0); }
30790 static constexpr
signed char
30791 signaling_NaN() noexcept
30792 {
return static_cast<signed char>(0); }
30794 static constexpr
signed char
30795 denorm_min() noexcept
30796 {
return static_cast<signed char>(0); }
30798 static constexpr
bool is_iec559 =
false;
30799 static constexpr
bool is_bounded =
true;
30800 static constexpr
bool is_modulo =
false;
30802 static constexpr
bool traps =
true;
30803 static constexpr
bool tinyness_before =
false;
30804 static constexpr float_round_style round_style
30805 = round_toward_zero;
30810 struct numeric_limits<unsigned char>
30812 static constexpr
bool is_specialized =
true;
30814 static constexpr
unsigned char
30815 min() noexcept {
return 0; }
30817 static constexpr
unsigned char
30818 max() noexcept {
return 127 * 2U + 1; }
30821 static constexpr
unsigned char
30822 lowest() noexcept {
return min(); }
30825 static constexpr
int digits
30826 = (
sizeof(
unsigned char) * 8 - ((
unsigned char)(-1) < 0));
30827 static constexpr
int digits10
30828 = ((
sizeof(
unsigned char) * 8 - ((
unsigned char)(-1) < 0)) * 643L / 2136);
30830 static constexpr
int max_digits10 = 0;
30832 static constexpr
bool is_signed =
false;
30833 static constexpr
bool is_integer =
true;
30834 static constexpr
bool is_exact =
true;
30835 static constexpr
int radix = 2;
30837 static constexpr
unsigned char
30838 epsilon() noexcept {
return 0; }
30840 static constexpr
unsigned char
30841 round_error() noexcept {
return 0; }
30843 static constexpr
int min_exponent = 0;
30844 static constexpr
int min_exponent10 = 0;
30845 static constexpr
int max_exponent = 0;
30846 static constexpr
int max_exponent10 = 0;
30848 static constexpr
bool has_infinity =
false;
30849 static constexpr
bool has_quiet_NaN =
false;
30850 static constexpr
bool has_signaling_NaN =
false;
30851 static constexpr float_denorm_style has_denorm
30853 static constexpr
bool has_denorm_loss =
false;
30855 static constexpr
unsigned char
30856 infinity() noexcept
30857 {
return static_cast<unsigned char>(0); }
30859 static constexpr
unsigned char
30860 quiet_NaN() noexcept
30861 {
return static_cast<unsigned char>(0); }
30863 static constexpr
unsigned char
30864 signaling_NaN() noexcept
30865 {
return static_cast<unsigned char>(0); }
30867 static constexpr
unsigned char
30868 denorm_min() noexcept
30869 {
return static_cast<unsigned char>(0); }
30871 static constexpr
bool is_iec559 =
false;
30872 static constexpr
bool is_bounded =
true;
30873 static constexpr
bool is_modulo =
true;
30875 static constexpr
bool traps =
true;
30876 static constexpr
bool tinyness_before =
false;
30877 static constexpr float_round_style round_style
30878 = round_toward_zero;
30883 struct numeric_limits<wchar_t>
30885 static constexpr
bool is_specialized =
true;
30887 static constexpr
wchar_t
30888 min() noexcept {
return (((
wchar_t)(-1) < 0) ? -(((
wchar_t)(-1) < 0) ? (((((
wchar_t)1 << ((
sizeof(
wchar_t) * 8 - ((
wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(
wchar_t)0) - 1 : (
wchar_t)0); }
30890 static constexpr
wchar_t
30891 max() noexcept {
return (((
wchar_t)(-1) < 0) ? (((((
wchar_t)1 << ((
sizeof(
wchar_t) * 8 - ((
wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(
wchar_t)0); }
30894 static constexpr
wchar_t
30895 lowest() noexcept {
return min(); }
30898 static constexpr
int digits = (
sizeof(wchar_t) * 8 - ((
wchar_t)(-1) < 0));
30899 static constexpr
int digits10
30900 = ((
sizeof(wchar_t) * 8 - ((
wchar_t)(-1) < 0)) * 643L / 2136);
30902 static constexpr
int max_digits10 = 0;
30904 static constexpr
bool is_signed = ((wchar_t)(-1) < 0);
30905 static constexpr
bool is_integer =
true;
30906 static constexpr
bool is_exact =
true;
30907 static constexpr
int radix = 2;
30909 static constexpr
wchar_t
30910 epsilon() noexcept {
return 0; }
30912 static constexpr
wchar_t
30913 round_error() noexcept {
return 0; }
30915 static constexpr
int min_exponent = 0;
30916 static constexpr
int min_exponent10 = 0;
30917 static constexpr
int max_exponent = 0;
30918 static constexpr
int max_exponent10 = 0;
30920 static constexpr
bool has_infinity =
false;
30921 static constexpr
bool has_quiet_NaN =
false;
30922 static constexpr
bool has_signaling_NaN =
false;
30923 static constexpr float_denorm_style has_denorm
30925 static constexpr
bool has_denorm_loss =
false;
30927 static constexpr
wchar_t
30928 infinity() noexcept {
return wchar_t(); }
30930 static constexpr
wchar_t
30931 quiet_NaN() noexcept {
return wchar_t(); }
30933 static constexpr
wchar_t
30934 signaling_NaN() noexcept {
return wchar_t(); }
30936 static constexpr
wchar_t
30937 denorm_min() noexcept {
return wchar_t(); }
30939 static constexpr
bool is_iec559 =
false;
30940 static constexpr
bool is_bounded =
true;
30941 static constexpr
bool is_modulo = !is_signed;
30943 static constexpr
bool traps =
true;
30944 static constexpr
bool tinyness_before =
false;
30945 static constexpr float_round_style round_style
30946 = round_toward_zero;
30952 struct numeric_limits<char16_t>
30954 static constexpr
bool is_specialized =
true;
30956 static constexpr char16_t
30957 min() noexcept {
return (((char16_t)(-1) < 0) ? -(((char16_t)(-1) < 0) ? (((((char16_t)1 << ((
sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0) - 1 : (char16_t)0); }
30959 static constexpr char16_t
30960 max() noexcept {
return (((char16_t)(-1) < 0) ? (((((char16_t)1 << ((
sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0); }
30962 static constexpr char16_t
30963 lowest() noexcept {
return min(); }
30965 static constexpr
int digits = (
sizeof(char16_t) * 8 - ((char16_t)(-1) < 0));
30966 static constexpr
int digits10 = ((
sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136);
30967 static constexpr
int max_digits10 = 0;
30968 static constexpr
bool is_signed = ((char16_t)(-1) < 0);
30969 static constexpr
bool is_integer =
true;
30970 static constexpr
bool is_exact =
true;
30971 static constexpr
int radix = 2;
30973 static constexpr char16_t
30974 epsilon() noexcept {
return 0; }
30976 static constexpr char16_t
30977 round_error() noexcept {
return 0; }
30979 static constexpr
int min_exponent = 0;
30980 static constexpr
int min_exponent10 = 0;
30981 static constexpr
int max_exponent = 0;
30982 static constexpr
int max_exponent10 = 0;
30984 static constexpr
bool has_infinity =
false;
30985 static constexpr
bool has_quiet_NaN =
false;
30986 static constexpr
bool has_signaling_NaN =
false;
30987 static constexpr float_denorm_style has_denorm = denorm_absent;
30988 static constexpr
bool has_denorm_loss =
false;
30990 static constexpr char16_t
30991 infinity() noexcept {
return char16_t(); }
30993 static constexpr char16_t
30994 quiet_NaN() noexcept {
return char16_t(); }
30996 static constexpr char16_t
30997 signaling_NaN() noexcept {
return char16_t(); }
30999 static constexpr char16_t
31000 denorm_min() noexcept {
return char16_t(); }
31002 static constexpr
bool is_iec559 =
false;
31003 static constexpr
bool is_bounded =
true;
31004 static constexpr
bool is_modulo = !is_signed;
31006 static constexpr
bool traps =
true;
31007 static constexpr
bool tinyness_before =
false;
31008 static constexpr float_round_style round_style = round_toward_zero;
31013 struct numeric_limits<char32_t>
31015 static constexpr
bool is_specialized =
true;
31017 static constexpr char32_t
31018 min() noexcept {
return (((char32_t)(-1) < 0) ? -(((char32_t)(-1) < 0) ? (((((char32_t)1 << ((
sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0) - 1 : (char32_t)0); }
31020 static constexpr char32_t
31021 max() noexcept {
return (((char32_t)(-1) < 0) ? (((((char32_t)1 << ((
sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0); }
31023 static constexpr char32_t
31024 lowest() noexcept {
return min(); }
31026 static constexpr
int digits = (
sizeof(char32_t) * 8 - ((char32_t)(-1) < 0));
31027 static constexpr
int digits10 = ((
sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136);
31028 static constexpr
int max_digits10 = 0;
31029 static constexpr
bool is_signed = ((char32_t)(-1) < 0);
31030 static constexpr
bool is_integer =
true;
31031 static constexpr
bool is_exact =
true;
31032 static constexpr
int radix = 2;
31034 static constexpr char32_t
31035 epsilon() noexcept {
return 0; }
31037 static constexpr char32_t
31038 round_error() noexcept {
return 0; }
31040 static constexpr
int min_exponent = 0;
31041 static constexpr
int min_exponent10 = 0;
31042 static constexpr
int max_exponent = 0;
31043 static constexpr
int max_exponent10 = 0;
31045 static constexpr
bool has_infinity =
false;
31046 static constexpr
bool has_quiet_NaN =
false;
31047 static constexpr
bool has_signaling_NaN =
false;
31048 static constexpr float_denorm_style has_denorm = denorm_absent;
31049 static constexpr
bool has_denorm_loss =
false;
31051 static constexpr char32_t
31052 infinity() noexcept {
return char32_t(); }
31054 static constexpr char32_t
31055 quiet_NaN() noexcept {
return char32_t(); }
31057 static constexpr char32_t
31058 signaling_NaN() noexcept {
return char32_t(); }
31060 static constexpr char32_t
31061 denorm_min() noexcept {
return char32_t(); }
31063 static constexpr
bool is_iec559 =
false;
31064 static constexpr
bool is_bounded =
true;
31065 static constexpr
bool is_modulo = !is_signed;
31067 static constexpr
bool traps =
true;
31068 static constexpr
bool tinyness_before =
false;
31069 static constexpr float_round_style round_style = round_toward_zero;
31075 struct numeric_limits<short>
31077 static constexpr
bool is_specialized =
true;
31079 static constexpr
short
31080 min() noexcept {
return -32767 - 1; }
31082 static constexpr
short
31083 max() noexcept {
return 32767; }
31086 static constexpr
short
31087 lowest() noexcept {
return min(); }
31090 static constexpr
int digits = (
sizeof(short) * 8 - ((
short)(-1) < 0));
31091 static constexpr
int digits10 = ((
sizeof(short) * 8 - ((
short)(-1) < 0)) * 643L / 2136);
31093 static constexpr
int max_digits10 = 0;
31095 static constexpr
bool is_signed =
true;
31096 static constexpr
bool is_integer =
true;
31097 static constexpr
bool is_exact =
true;
31098 static constexpr
int radix = 2;
31100 static constexpr
short
31101 epsilon() noexcept {
return 0; }
31103 static constexpr
short
31104 round_error() noexcept {
return 0; }
31106 static constexpr
int min_exponent = 0;
31107 static constexpr
int min_exponent10 = 0;
31108 static constexpr
int max_exponent = 0;
31109 static constexpr
int max_exponent10 = 0;
31111 static constexpr
bool has_infinity =
false;
31112 static constexpr
bool has_quiet_NaN =
false;
31113 static constexpr
bool has_signaling_NaN =
false;
31114 static constexpr float_denorm_style has_denorm
31116 static constexpr
bool has_denorm_loss =
false;
31118 static constexpr
short
31119 infinity() noexcept {
return short(); }
31121 static constexpr
short
31122 quiet_NaN() noexcept {
return short(); }
31124 static constexpr
short
31125 signaling_NaN() noexcept {
return short(); }
31127 static constexpr
short
31128 denorm_min() noexcept {
return short(); }
31130 static constexpr
bool is_iec559 =
false;
31131 static constexpr
bool is_bounded =
true;
31132 static constexpr
bool is_modulo =
false;
31134 static constexpr
bool traps =
true;
31135 static constexpr
bool tinyness_before =
false;
31136 static constexpr float_round_style round_style
31137 = round_toward_zero;
31142 struct numeric_limits<unsigned short>
31144 static constexpr
bool is_specialized =
true;
31146 static constexpr
unsigned short
31147 min() noexcept {
return 0; }
31149 static constexpr
unsigned short
31150 max() noexcept {
return 32767 * 2U + 1; }
31153 static constexpr
unsigned short
31154 lowest() noexcept {
return min(); }
31157 static constexpr
int digits
31158 = (
sizeof(
unsigned short) * 8 - ((
unsigned short)(-1) < 0));
31159 static constexpr
int digits10
31160 = ((
sizeof(
unsigned short) * 8 - ((
unsigned short)(-1) < 0)) * 643L / 2136);
31162 static constexpr
int max_digits10 = 0;
31164 static constexpr
bool is_signed =
false;
31165 static constexpr
bool is_integer =
true;
31166 static constexpr
bool is_exact =
true;
31167 static constexpr
int radix = 2;
31169 static constexpr
unsigned short
31170 epsilon() noexcept {
return 0; }
31172 static constexpr
unsigned short
31173 round_error() noexcept {
return 0; }
31175 static constexpr
int min_exponent = 0;
31176 static constexpr
int min_exponent10 = 0;
31177 static constexpr
int max_exponent = 0;
31178 static constexpr
int max_exponent10 = 0;
31180 static constexpr
bool has_infinity =
false;
31181 static constexpr
bool has_quiet_NaN =
false;
31182 static constexpr
bool has_signaling_NaN =
false;
31183 static constexpr float_denorm_style has_denorm
31185 static constexpr
bool has_denorm_loss =
false;
31187 static constexpr
unsigned short
31188 infinity() noexcept
31189 {
return static_cast<unsigned short>(0); }
31191 static constexpr
unsigned short
31192 quiet_NaN() noexcept
31193 {
return static_cast<unsigned short>(0); }
31195 static constexpr
unsigned short
31196 signaling_NaN() noexcept
31197 {
return static_cast<unsigned short>(0); }
31199 static constexpr
unsigned short
31200 denorm_min() noexcept
31201 {
return static_cast<unsigned short>(0); }
31203 static constexpr
bool is_iec559 =
false;
31204 static constexpr
bool is_bounded =
true;
31205 static constexpr
bool is_modulo =
true;
31207 static constexpr
bool traps =
true;
31208 static constexpr
bool tinyness_before =
false;
31209 static constexpr float_round_style round_style
31210 = round_toward_zero;
31215 struct numeric_limits<int>
31217 static constexpr
bool is_specialized =
true;
31219 static constexpr
int
31220 min() noexcept {
return -2147483647 - 1; }
31222 static constexpr
int
31223 max() noexcept {
return 2147483647; }
31226 static constexpr
int
31227 lowest() noexcept {
return min(); }
31230 static constexpr
int digits = (
sizeof(int) * 8 - ((
int)(-1) < 0));
31231 static constexpr
int digits10 = ((
sizeof(int) * 8 - ((
int)(-1) < 0)) * 643L / 2136);
31233 static constexpr
int max_digits10 = 0;
31235 static constexpr
bool is_signed =
true;
31236 static constexpr
bool is_integer =
true;
31237 static constexpr
bool is_exact =
true;
31238 static constexpr
int radix = 2;
31240 static constexpr
int
31241 epsilon() noexcept {
return 0; }
31243 static constexpr
int
31244 round_error() noexcept {
return 0; }
31246 static constexpr
int min_exponent = 0;
31247 static constexpr
int min_exponent10 = 0;
31248 static constexpr
int max_exponent = 0;
31249 static constexpr
int max_exponent10 = 0;
31251 static constexpr
bool has_infinity =
false;
31252 static constexpr
bool has_quiet_NaN =
false;
31253 static constexpr
bool has_signaling_NaN =
false;
31254 static constexpr float_denorm_style has_denorm
31256 static constexpr
bool has_denorm_loss =
false;
31258 static constexpr
int
31259 infinity() noexcept {
return static_cast<int>(0); }
31261 static constexpr
int
31262 quiet_NaN() noexcept {
return static_cast<int>(0); }
31264 static constexpr
int
31265 signaling_NaN() noexcept {
return static_cast<int>(0); }
31267 static constexpr
int
31268 denorm_min() noexcept {
return static_cast<int>(0); }
31270 static constexpr
bool is_iec559 =
false;
31271 static constexpr
bool is_bounded =
true;
31272 static constexpr
bool is_modulo =
false;
31274 static constexpr
bool traps =
true;
31275 static constexpr
bool tinyness_before =
false;
31276 static constexpr float_round_style round_style
31277 = round_toward_zero;
31282 struct numeric_limits<unsigned int>
31284 static constexpr
bool is_specialized =
true;
31286 static constexpr
unsigned int
31287 min() noexcept {
return 0; }
31289 static constexpr
unsigned int
31290 max() noexcept {
return 2147483647 * 2U + 1; }
31293 static constexpr
unsigned int
31294 lowest() noexcept {
return min(); }
31297 static constexpr
int digits
31298 = (
sizeof(
unsigned int) * 8 - ((
unsigned int)(-1) < 0));
31299 static constexpr
int digits10
31300 = ((
sizeof(
unsigned int) * 8 - ((
unsigned int)(-1) < 0)) * 643L / 2136);
31302 static constexpr
int max_digits10 = 0;
31304 static constexpr
bool is_signed =
false;
31305 static constexpr
bool is_integer =
true;
31306 static constexpr
bool is_exact =
true;
31307 static constexpr
int radix = 2;
31309 static constexpr
unsigned int
31310 epsilon() noexcept {
return 0; }
31312 static constexpr
unsigned int
31313 round_error() noexcept {
return 0; }
31315 static constexpr
int min_exponent = 0;
31316 static constexpr
int min_exponent10 = 0;
31317 static constexpr
int max_exponent = 0;
31318 static constexpr
int max_exponent10 = 0;
31320 static constexpr
bool has_infinity =
false;
31321 static constexpr
bool has_quiet_NaN =
false;
31322 static constexpr
bool has_signaling_NaN =
false;
31323 static constexpr float_denorm_style has_denorm
31325 static constexpr
bool has_denorm_loss =
false;
31327 static constexpr
unsigned int
31328 infinity() noexcept {
return static_cast<unsigned int>(0); }
31330 static constexpr
unsigned int
31331 quiet_NaN() noexcept
31332 {
return static_cast<unsigned int>(0); }
31334 static constexpr
unsigned int
31335 signaling_NaN() noexcept
31336 {
return static_cast<unsigned int>(0); }
31338 static constexpr
unsigned int
31339 denorm_min() noexcept
31340 {
return static_cast<unsigned int>(0); }
31342 static constexpr
bool is_iec559 =
false;
31343 static constexpr
bool is_bounded =
true;
31344 static constexpr
bool is_modulo =
true;
31346 static constexpr
bool traps =
true;
31347 static constexpr
bool tinyness_before =
false;
31348 static constexpr float_round_style round_style
31349 = round_toward_zero;
31354 struct numeric_limits<long>
31356 static constexpr
bool is_specialized =
true;
31358 static constexpr
long
31359 min() noexcept {
return -9223372036854775807L - 1; }
31361 static constexpr
long
31362 max() noexcept {
return 9223372036854775807L; }
31365 static constexpr
long
31366 lowest() noexcept {
return min(); }
31369 static constexpr
int digits = (
sizeof(long) * 8 - ((
long)(-1) < 0));
31370 static constexpr
int digits10 = ((
sizeof(long) * 8 - ((
long)(-1) < 0)) * 643L / 2136);
31372 static constexpr
int max_digits10 = 0;
31374 static constexpr
bool is_signed =
true;
31375 static constexpr
bool is_integer =
true;
31376 static constexpr
bool is_exact =
true;
31377 static constexpr
int radix = 2;
31379 static constexpr
long
31380 epsilon() noexcept {
return 0; }
31382 static constexpr
long
31383 round_error() noexcept {
return 0; }
31385 static constexpr
int min_exponent = 0;
31386 static constexpr
int min_exponent10 = 0;
31387 static constexpr
int max_exponent = 0;
31388 static constexpr
int max_exponent10 = 0;
31390 static constexpr
bool has_infinity =
false;
31391 static constexpr
bool has_quiet_NaN =
false;
31392 static constexpr
bool has_signaling_NaN =
false;
31393 static constexpr float_denorm_style has_denorm
31395 static constexpr
bool has_denorm_loss =
false;
31397 static constexpr
long
31398 infinity() noexcept {
return static_cast<long>(0); }
31400 static constexpr
long
31401 quiet_NaN() noexcept {
return static_cast<long>(0); }
31403 static constexpr
long
31404 signaling_NaN() noexcept {
return static_cast<long>(0); }
31406 static constexpr
long
31407 denorm_min() noexcept {
return static_cast<long>(0); }
31409 static constexpr
bool is_iec559 =
false;
31410 static constexpr
bool is_bounded =
true;
31411 static constexpr
bool is_modulo =
false;
31413 static constexpr
bool traps =
true;
31414 static constexpr
bool tinyness_before =
false;
31415 static constexpr float_round_style round_style
31416 = round_toward_zero;
31421 struct numeric_limits<unsigned long>
31423 static constexpr
bool is_specialized =
true;
31425 static constexpr
unsigned long
31426 min() noexcept {
return 0; }
31428 static constexpr
unsigned long
31429 max() noexcept {
return 9223372036854775807L * 2UL + 1; }
31432 static constexpr
unsigned long
31433 lowest() noexcept {
return min(); }
31436 static constexpr
int digits
31437 = (
sizeof(
unsigned long) * 8 - ((
unsigned long)(-1) < 0));
31438 static constexpr
int digits10
31439 = ((
sizeof(
unsigned long) * 8 - ((
unsigned long)(-1) < 0)) * 643L / 2136);
31441 static constexpr
int max_digits10 = 0;
31443 static constexpr
bool is_signed =
false;
31444 static constexpr
bool is_integer =
true;
31445 static constexpr
bool is_exact =
true;
31446 static constexpr
int radix = 2;
31448 static constexpr
unsigned long
31449 epsilon() noexcept {
return 0; }
31451 static constexpr
unsigned long
31452 round_error() noexcept {
return 0; }
31454 static constexpr
int min_exponent = 0;
31455 static constexpr
int min_exponent10 = 0;
31456 static constexpr
int max_exponent = 0;
31457 static constexpr
int max_exponent10 = 0;
31459 static constexpr
bool has_infinity =
false;
31460 static constexpr
bool has_quiet_NaN =
false;
31461 static constexpr
bool has_signaling_NaN =
false;
31462 static constexpr float_denorm_style has_denorm
31464 static constexpr
bool has_denorm_loss =
false;
31466 static constexpr
unsigned long
31467 infinity() noexcept
31468 {
return static_cast<unsigned long>(0); }
31470 static constexpr
unsigned long
31471 quiet_NaN() noexcept
31472 {
return static_cast<unsigned long>(0); }
31474 static constexpr
unsigned long
31475 signaling_NaN() noexcept
31476 {
return static_cast<unsigned long>(0); }
31478 static constexpr
unsigned long
31479 denorm_min() noexcept
31480 {
return static_cast<unsigned long>(0); }
31482 static constexpr
bool is_iec559 =
false;
31483 static constexpr
bool is_bounded =
true;
31484 static constexpr
bool is_modulo =
true;
31486 static constexpr
bool traps =
true;
31487 static constexpr
bool tinyness_before =
false;
31488 static constexpr float_round_style round_style
31489 = round_toward_zero;
31494 struct numeric_limits<long long>
31496 static constexpr
bool is_specialized =
true;
31498 static constexpr
long long
31499 min() noexcept {
return -9223372036854775807LL - 1; }
31501 static constexpr
long long
31502 max() noexcept {
return 9223372036854775807LL; }
31505 static constexpr
long long
31506 lowest() noexcept {
return min(); }
31509 static constexpr
int digits
31510 = (
sizeof(
long long) * 8 - ((
long long)(-1) < 0));
31511 static constexpr
int digits10
31512 = ((
sizeof(
long long) * 8 - ((
long long)(-1) < 0)) * 643L / 2136);
31514 static constexpr
int max_digits10 = 0;
31516 static constexpr
bool is_signed =
true;
31517 static constexpr
bool is_integer =
true;
31518 static constexpr
bool is_exact =
true;
31519 static constexpr
int radix = 2;
31521 static constexpr
long long
31522 epsilon() noexcept {
return 0; }
31524 static constexpr
long long
31525 round_error() noexcept {
return 0; }
31527 static constexpr
int min_exponent = 0;
31528 static constexpr
int min_exponent10 = 0;
31529 static constexpr
int max_exponent = 0;
31530 static constexpr
int max_exponent10 = 0;
31532 static constexpr
bool has_infinity =
false;
31533 static constexpr
bool has_quiet_NaN =
false;
31534 static constexpr
bool has_signaling_NaN =
false;
31535 static constexpr float_denorm_style has_denorm
31537 static constexpr
bool has_denorm_loss =
false;
31539 static constexpr
long long
31540 infinity() noexcept {
return static_cast<long long>(0); }
31542 static constexpr
long long
31543 quiet_NaN() noexcept {
return static_cast<long long>(0); }
31545 static constexpr
long long
31546 signaling_NaN() noexcept
31547 {
return static_cast<long long>(0); }
31549 static constexpr
long long
31550 denorm_min() noexcept {
return static_cast<long long>(0); }
31552 static constexpr
bool is_iec559 =
false;
31553 static constexpr
bool is_bounded =
true;
31554 static constexpr
bool is_modulo =
false;
31556 static constexpr
bool traps =
true;
31557 static constexpr
bool tinyness_before =
false;
31558 static constexpr float_round_style round_style
31559 = round_toward_zero;
31564 struct numeric_limits<unsigned long long>
31566 static constexpr
bool is_specialized =
true;
31568 static constexpr
unsigned long long
31569 min() noexcept {
return 0; }
31571 static constexpr
unsigned long long
31572 max() noexcept {
return 9223372036854775807LL * 2ULL + 1; }
31575 static constexpr
unsigned long long
31576 lowest() noexcept {
return min(); }
31579 static constexpr
int digits
31580 = (
sizeof(
unsigned long long) * 8 - ((
unsigned long long)(-1) < 0));
31581 static constexpr
int digits10
31582 = ((
sizeof(
unsigned long long) * 8 - ((
unsigned long long)(-1) < 0)) * 643L / 2136);
31584 static constexpr
int max_digits10 = 0;
31586 static constexpr
bool is_signed =
false;
31587 static constexpr
bool is_integer =
true;
31588 static constexpr
bool is_exact =
true;
31589 static constexpr
int radix = 2;
31591 static constexpr
unsigned long long
31592 epsilon() noexcept {
return 0; }
31594 static constexpr
unsigned long long
31595 round_error() noexcept {
return 0; }
31597 static constexpr
int min_exponent = 0;
31598 static constexpr
int min_exponent10 = 0;
31599 static constexpr
int max_exponent = 0;
31600 static constexpr
int max_exponent10 = 0;
31602 static constexpr
bool has_infinity =
false;
31603 static constexpr
bool has_quiet_NaN =
false;
31604 static constexpr
bool has_signaling_NaN =
false;
31605 static constexpr float_denorm_style has_denorm
31607 static constexpr
bool has_denorm_loss =
false;
31609 static constexpr
unsigned long long
31610 infinity() noexcept
31611 {
return static_cast<unsigned long long>(0); }
31613 static constexpr
unsigned long long
31614 quiet_NaN() noexcept
31615 {
return static_cast<unsigned long long>(0); }
31617 static constexpr
unsigned long long
31618 signaling_NaN() noexcept
31619 {
return static_cast<unsigned long long>(0); }
31621 static constexpr
unsigned long long
31622 denorm_min() noexcept
31623 {
return static_cast<unsigned long long>(0); }
31625 static constexpr
bool is_iec559 =
false;
31626 static constexpr
bool is_bounded =
true;
31627 static constexpr
bool is_modulo =
true;
31629 static constexpr
bool traps =
true;
31630 static constexpr
bool tinyness_before =
false;
31631 static constexpr float_round_style round_style
31632 = round_toward_zero;
31634 # 1552 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/limits" 3
31636 struct numeric_limits<float>
31638 static constexpr
bool is_specialized =
true;
31640 static constexpr
float
31641 min() noexcept {
return 1.17549435e-38F; }
31643 static constexpr
float
31644 max() noexcept {
return 3.40282347e+38F; }
31647 static constexpr
float
31648 lowest() noexcept {
return -3.40282347e+38F; }
31651 static constexpr
int digits = 24;
31652 static constexpr
int digits10 = 6;
31654 static constexpr
int max_digits10
31655 = (2 + (24) * 643L / 2136);
31657 static constexpr
bool is_signed =
true;
31658 static constexpr
bool is_integer =
false;
31659 static constexpr
bool is_exact =
false;
31660 static constexpr
int radix = 2;
31662 static constexpr
float
31663 epsilon() noexcept {
return 1.19209290e-7F; }
31665 static constexpr
float
31666 round_error() noexcept {
return 0.5F; }
31668 static constexpr
int min_exponent = (-125);
31669 static constexpr
int min_exponent10 = (-37);
31670 static constexpr
int max_exponent = 128;
31671 static constexpr
int max_exponent10 = 38;
31673 static constexpr
bool has_infinity = 1;
31674 static constexpr
bool has_quiet_NaN = 1;
31675 static constexpr
bool has_signaling_NaN = has_quiet_NaN;
31676 static constexpr float_denorm_style has_denorm
31677 = bool(1) ? denorm_present : denorm_absent;
31678 static constexpr
bool has_denorm_loss
31681 static constexpr
float
31682 infinity() noexcept {
return __builtin_huge_valf(); }
31684 static constexpr
float
31685 quiet_NaN() noexcept {
return __builtin_nanf(
""); }
31687 static constexpr
float
31688 signaling_NaN() noexcept {
return __builtin_nansf(
""); }
31690 static constexpr
float
31691 denorm_min() noexcept {
return 1.40129846e-45F; }
31693 static constexpr
bool is_iec559
31694 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
31695 static constexpr
bool is_bounded =
true;
31696 static constexpr
bool is_modulo =
false;
31698 static constexpr
bool traps =
false;
31699 static constexpr
bool tinyness_before
31701 static constexpr float_round_style round_style
31702 = round_to_nearest;
31711 struct numeric_limits<double>
31713 static constexpr
bool is_specialized =
true;
31715 static constexpr
double
31716 min() noexcept {
return 2.2250738585072014e-308; }
31718 static constexpr
double
31719 max() noexcept {
return 1.7976931348623157e+308; }
31722 static constexpr
double
31723 lowest() noexcept {
return -1.7976931348623157e+308; }
31726 static constexpr
int digits = 53;
31727 static constexpr
int digits10 = 15;
31729 static constexpr
int max_digits10
31730 = (2 + (53) * 643L / 2136);
31732 static constexpr
bool is_signed =
true;
31733 static constexpr
bool is_integer =
false;
31734 static constexpr
bool is_exact =
false;
31735 static constexpr
int radix = 2;
31737 static constexpr
double
31738 epsilon() noexcept {
return 2.2204460492503131e-16; }
31740 static constexpr
double
31741 round_error() noexcept {
return 0.5; }
31743 static constexpr
int min_exponent = (-1021);
31744 static constexpr
int min_exponent10 = (-307);
31745 static constexpr
int max_exponent = 1024;
31746 static constexpr
int max_exponent10 = 308;
31748 static constexpr
bool has_infinity = 1;
31749 static constexpr
bool has_quiet_NaN = 1;
31750 static constexpr
bool has_signaling_NaN = has_quiet_NaN;
31751 static constexpr float_denorm_style has_denorm
31752 = bool(1) ? denorm_present : denorm_absent;
31753 static constexpr
bool has_denorm_loss
31756 static constexpr
double
31757 infinity() noexcept {
return __builtin_huge_val(); }
31759 static constexpr
double
31760 quiet_NaN() noexcept {
return __builtin_nan(
""); }
31762 static constexpr
double
31763 signaling_NaN() noexcept {
return __builtin_nans(
""); }
31765 static constexpr
double
31766 denorm_min() noexcept {
return 4.9406564584124654e-324; }
31768 static constexpr
bool is_iec559
31769 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
31770 static constexpr
bool is_bounded =
true;
31771 static constexpr
bool is_modulo =
false;
31773 static constexpr
bool traps =
false;
31774 static constexpr
bool tinyness_before
31776 static constexpr float_round_style round_style
31777 = round_to_nearest;
31786 struct numeric_limits<long double>
31788 static constexpr
bool is_specialized =
true;
31790 static constexpr
long double
31791 min() noexcept {
return 3.36210314311209350626e-4932L; }
31793 static constexpr
long double
31794 max() noexcept {
return 1.18973149535723176502e+4932L; }
31797 static constexpr
long double
31798 lowest() noexcept {
return -1.18973149535723176502e+4932L; }
31801 static constexpr
int digits = 64;
31802 static constexpr
int digits10 = 18;
31804 static constexpr
int max_digits10
31805 = (2 + (64) * 643L / 2136);
31807 static constexpr
bool is_signed =
true;
31808 static constexpr
bool is_integer =
false;
31809 static constexpr
bool is_exact =
false;
31810 static constexpr
int radix = 2;
31812 static constexpr
long double
31813 epsilon() noexcept {
return 1.08420217248550443401e-19L; }
31815 static constexpr
long double
31816 round_error() noexcept {
return 0.5L; }
31818 static constexpr
int min_exponent = (-16381);
31819 static constexpr
int min_exponent10 = (-4931);
31820 static constexpr
int max_exponent = 16384;
31821 static constexpr
int max_exponent10 = 4932;
31823 static constexpr
bool has_infinity = 1;
31824 static constexpr
bool has_quiet_NaN = 1;
31825 static constexpr
bool has_signaling_NaN = has_quiet_NaN;
31826 static constexpr float_denorm_style has_denorm
31827 = bool(1) ? denorm_present : denorm_absent;
31828 static constexpr
bool has_denorm_loss
31831 static constexpr
long double
31832 infinity() noexcept {
return __builtin_huge_vall(); }
31834 static constexpr
long double
31835 quiet_NaN() noexcept {
return __builtin_nanl(
""); }
31837 static constexpr
long double
31838 signaling_NaN() noexcept {
return __builtin_nansl(
""); }
31840 static constexpr
long double
31841 denorm_min() noexcept {
return 3.64519953188247460253e-4951L; }
31843 static constexpr
bool is_iec559
31844 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
31845 static constexpr
bool is_bounded =
true;
31846 static constexpr
bool is_modulo =
false;
31848 static constexpr
bool traps =
false;
31849 static constexpr
bool tinyness_before =
31851 static constexpr float_round_style round_style =
31861 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/random" 2 3
31868 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/random.h" 1 3
31869 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/random.h" 3
31870 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/vector" 1 3
31871 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/vector" 3
31876 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_uninitialized.h" 1 3
31877 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_uninitialized.h" 3
31878 namespace std __attribute__ ((__visibility__ ("default")))
31882 template<
bool _TrivialValueTypes>
31883 struct __uninitialized_copy
31885 template<
typename _InputIterator,
typename _ForwardIterator>
31886 static _ForwardIterator
31887 __uninit_copy(_InputIterator __first, _InputIterator __last,
31888 _ForwardIterator __result)
31890 _ForwardIterator __cur = __result;
31893 for (; __first != __last; ++__first, ++__cur)
31894 std::_Construct(std::__addressof(*__cur), *__first);
31899 std::_Destroy(__result, __cur);
31906 struct __uninitialized_copy<true>
31908 template<
typename _InputIterator,
typename _ForwardIterator>
31909 static _ForwardIterator
31910 __uninit_copy(_InputIterator __first, _InputIterator __last,
31911 _ForwardIterator __result)
31912 {
return std::copy(__first, __last, __result); }
31914 # 105 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_uninitialized.h" 3
31915 template<
typename _InputIterator,
typename _ForwardIterator>
31916 inline _ForwardIterator
31917 uninitialized_copy(_InputIterator __first, _InputIterator __last,
31918 _ForwardIterator __result)
31920 typedef typename iterator_traits<_InputIterator>::value_type
31922 typedef typename iterator_traits<_ForwardIterator>::value_type
31928 typedef typename iterator_traits<_InputIterator>::reference _RefType;
31929 const bool __assignable = is_assignable<_ValueType1, _RefType>::value;
31932 return std::__uninitialized_copy<__is_trivial(_ValueType1)
31933 && __is_trivial(_ValueType2)
31935 __uninit_copy(__first, __last, __result);
31939 template<
bool _TrivialValueType>
31940 struct __uninitialized_fill
31942 template<
typename _ForwardIterator,
typename _Tp>
31944 __uninit_fill(_ForwardIterator __first, _ForwardIterator __last,
31947 _ForwardIterator __cur = __first;
31950 for (; __cur != __last; ++__cur)
31951 std::_Construct(std::__addressof(*__cur), __x);
31955 std::_Destroy(__first, __cur);
31962 struct __uninitialized_fill<true>
31964 template<
typename _ForwardIterator,
typename _Tp>
31966 __uninit_fill(_ForwardIterator __first, _ForwardIterator __last,
31968 { std::fill(__first, __last, __x); }
31970 # 170 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_uninitialized.h" 3
31971 template<
typename _ForwardIterator,
typename _Tp>
31973 uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
31976 typedef typename iterator_traits<_ForwardIterator>::value_type
31982 const bool __assignable = is_copy_assignable<_ValueType>::value;
31985 std::__uninitialized_fill<__is_trivial(_ValueType) && __assignable>::
31986 __uninit_fill(__first, __last, __x);
31990 template<
bool _TrivialValueType>
31991 struct __uninitialized_fill_n
31993 template<
typename _ForwardIterator,
typename _Size,
typename _Tp>
31995 __uninit_fill_n(_ForwardIterator __first, _Size __n,
31998 _ForwardIterator __cur = __first;
32001 for (; __n > 0; --__n, ++__cur)
32002 std::_Construct(std::__addressof(*__cur), __x);
32006 std::_Destroy(__first, __cur);
32013 struct __uninitialized_fill_n<true>
32015 template<
typename _ForwardIterator,
typename _Size,
typename _Tp>
32017 __uninit_fill_n(_ForwardIterator __first, _Size __n,
32019 { std::fill_n(__first, __n, __x); }
32021 # 230 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_uninitialized.h" 3
32022 template<
typename _ForwardIterator,
typename _Size,
typename _Tp>
32024 uninitialized_fill_n(_ForwardIterator __first, _Size __n,
const _Tp& __x)
32026 typedef typename iterator_traits<_ForwardIterator>::value_type
32032 const bool __assignable = is_copy_assignable<_ValueType>::value;
32035 std::__uninitialized_fill_n<__is_trivial(_ValueType) && __assignable>::
32036 __uninit_fill_n(__first, __n, __x);
32045 template<
typename _InputIterator,
typename _ForwardIterator,
32046 typename _Allocator>
32048 __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
32049 _ForwardIterator __result, _Allocator& __alloc)
32051 _ForwardIterator __cur = __result;
32054 typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
32055 for (; __first != __last; ++__first, ++__cur)
32056 __traits::construct(__alloc, std::__addressof(*__cur), *__first);
32061 std::_Destroy(__result, __cur, __alloc);
32066 template<
typename _InputIterator,
typename _ForwardIterator,
typename _Tp>
32067 inline _ForwardIterator
32068 __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
32069 _ForwardIterator __result, allocator<_Tp>&)
32070 {
return std::uninitialized_copy(__first, __last, __result); }
32072 template<
typename _InputIterator,
typename _ForwardIterator,
32073 typename _Allocator>
32074 inline _ForwardIterator
32075 __uninitialized_move_a(_InputIterator __first, _InputIterator __last,
32076 _ForwardIterator __result, _Allocator& __alloc)
32078 return std::__uninitialized_copy_a(std::make_move_iterator(__first),
32079 std::make_move_iterator(__last),
32080 __result, __alloc);
32083 template<
typename _InputIterator,
typename _ForwardIterator,
32084 typename _Allocator>
32085 inline _ForwardIterator
32086 __uninitialized_move_if_noexcept_a(_InputIterator __first,
32087 _InputIterator __last,
32088 _ForwardIterator __result,
32089 _Allocator& __alloc)
32091 return std::__uninitialized_copy_a
32092 (std::__make_move_if_noexcept_iterator(__first),
32093 std::__make_move_if_noexcept_iterator(__last), __result, __alloc);
32096 template<
typename _ForwardIterator,
typename _Tp,
typename _Allocator>
32098 __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
32099 const _Tp& __x, _Allocator& __alloc)
32101 _ForwardIterator __cur = __first;
32104 typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
32105 for (; __cur != __last; ++__cur)
32106 __traits::construct(__alloc, std::__addressof(*__cur), __x);
32110 std::_Destroy(__first, __cur, __alloc);
32115 template<
typename _ForwardIterator,
typename _Tp,
typename _Tp2>
32117 __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
32118 const _Tp& __x, allocator<_Tp2>&)
32119 { std::uninitialized_fill(__first, __last, __x); }
32121 template<
typename _ForwardIterator,
typename _Size,
typename _Tp,
32122 typename _Allocator>
32124 __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
32125 const _Tp& __x, _Allocator& __alloc)
32127 _ForwardIterator __cur = __first;
32130 typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
32131 for (; __n > 0; --__n, ++__cur)
32132 __traits::construct(__alloc, std::__addressof(*__cur), __x);
32136 std::_Destroy(__first, __cur, __alloc);
32141 template<
typename _ForwardIterator,
typename _Size,
typename _Tp,
32144 __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
32145 const _Tp& __x, allocator<_Tp2>&)
32146 { std::uninitialized_fill_n(__first, __n, __x); }
32147 # 366 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_uninitialized.h" 3
32148 template<
typename _InputIterator1,
typename _InputIterator2,
32149 typename _ForwardIterator,
typename _Allocator>
32150 inline _ForwardIterator
32151 __uninitialized_copy_move(_InputIterator1 __first1,
32152 _InputIterator1 __last1,
32153 _InputIterator2 __first2,
32154 _InputIterator2 __last2,
32155 _ForwardIterator __result,
32156 _Allocator& __alloc)
32158 _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1,
32163 return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc);
32167 std::_Destroy(__result, __mid, __alloc);
32176 template<
typename _InputIterator1,
typename _InputIterator2,
32177 typename _ForwardIterator,
typename _Allocator>
32178 inline _ForwardIterator
32179 __uninitialized_move_copy(_InputIterator1 __first1,
32180 _InputIterator1 __last1,
32181 _InputIterator2 __first2,
32182 _InputIterator2 __last2,
32183 _ForwardIterator __result,
32184 _Allocator& __alloc)
32186 _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1,
32191 return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc);
32195 std::_Destroy(__result, __mid, __alloc);
32203 template<
typename _ForwardIterator,
typename _Tp,
typename _InputIterator,
32204 typename _Allocator>
32205 inline _ForwardIterator
32206 __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid,
32207 const _Tp& __x, _InputIterator __first,
32208 _InputIterator __last, _Allocator& __alloc)
32210 std::__uninitialized_fill_a(__result, __mid, __x, __alloc);
32213 return std::__uninitialized_move_a(__first, __last, __mid, __alloc);
32217 std::_Destroy(__result, __mid, __alloc);
32225 template<
typename _InputIterator,
typename _ForwardIterator,
typename _Tp,
32226 typename _Allocator>
32228 __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1,
32229 _ForwardIterator __first2,
32230 _ForwardIterator __last2,
const _Tp& __x,
32231 _Allocator& __alloc)
32233 _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1,
32238 std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc);
32242 std::_Destroy(__first2, __mid2, __alloc);
32251 template<
bool _TrivialValueType>
32252 struct __uninitialized_default_1
32254 template<
typename _ForwardIterator>
32256 __uninit_default(_ForwardIterator __first, _ForwardIterator __last)
32258 _ForwardIterator __cur = __first;
32261 for (; __cur != __last; ++__cur)
32262 std::_Construct(std::__addressof(*__cur));
32266 std::_Destroy(__first, __cur);
32273 struct __uninitialized_default_1<true>
32275 template<
typename _ForwardIterator>
32277 __uninit_default(_ForwardIterator __first, _ForwardIterator __last)
32279 typedef typename iterator_traits<_ForwardIterator>::value_type
32282 std::fill(__first, __last, _ValueType());
32286 template<
bool _TrivialValueType>
32287 struct __uninitialized_default_n_1
32289 template<
typename _ForwardIterator,
typename _Size>
32291 __uninit_default_n(_ForwardIterator __first, _Size __n)
32293 _ForwardIterator __cur = __first;